niksalehi
جمعه 03 تیر 1401, 13:24 عصر
سلام، وقت شما به خیر باشه دوستان
من برای ارسال درخواست به یک آدرس https ، از فانکشن زیر استفاده میکنم
function file_get_contents_ssl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,'{"json_schema":{"category":{"value":"TEST"},"type":{"value":"private"}},"postingdate":1655879832822168}');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Host: example.ir',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0',
'Content-Type: application/json',
'Content-Length: 124',
'Referer: https://example.ir/',
'Connection: keep-alive'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3000);
curl_setopt($ch, CURLOPT_TIMEOUT, 10000);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
برای فراخوانیش هم از این کد
$html = file_get_contents_ssl("https://example.ir/test/");
echo $html;
مشکلی که دارم اینه وقتی یک مقداری رو از طریق $_GET دریافت میکنم ، و به جای قسمت 1655879832822168 در قسمت زیر جایگذاری میکنم و درخواستم رو ارسال میکنم، پاسخی از سایت دریافت نمیکنم، اما وقتی به صورت مستقیم و بدون جایگذاری متغیر در قسمت زیر درخواست رو ارسال میکنم، پاسخ رو کامل دریافت میکنم.
curl_setopt($ch, CURLOPT_POSTFIELDS,'{"json_schema":{"category":{"value":"TEST"},"type":{"value":"private"}},"postingdate":1655879832822168}');
مشکل از کجاست؟
چطوری باید متغیری رو دریافت کرد و در CURLOPT_POSTFIELDS جایگذاری کرد که مشکلی پیش نیاد؟
ممنونم
من برای ارسال درخواست به یک آدرس https ، از فانکشن زیر استفاده میکنم
function file_get_contents_ssl($url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,'{"json_schema":{"category":{"value":"TEST"},"type":{"value":"private"}},"postingdate":1655879832822168}');
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Host: example.ir',
'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:101.0) Gecko/20100101 Firefox/101.0',
'Content-Type: application/json',
'Content-Length: 124',
'Referer: https://example.ir/',
'Connection: keep-alive'
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3000);
curl_setopt($ch, CURLOPT_TIMEOUT, 10000);
$result = curl_exec($ch);
curl_close($ch);
return $result;
}
برای فراخوانیش هم از این کد
$html = file_get_contents_ssl("https://example.ir/test/");
echo $html;
مشکلی که دارم اینه وقتی یک مقداری رو از طریق $_GET دریافت میکنم ، و به جای قسمت 1655879832822168 در قسمت زیر جایگذاری میکنم و درخواستم رو ارسال میکنم، پاسخی از سایت دریافت نمیکنم، اما وقتی به صورت مستقیم و بدون جایگذاری متغیر در قسمت زیر درخواست رو ارسال میکنم، پاسخ رو کامل دریافت میکنم.
curl_setopt($ch, CURLOPT_POSTFIELDS,'{"json_schema":{"category":{"value":"TEST"},"type":{"value":"private"}},"postingdate":1655879832822168}');
مشکل از کجاست؟
چطوری باید متغیری رو دریافت کرد و در CURLOPT_POSTFIELDS جایگذاری کرد که مشکلی پیش نیاد؟
ممنونم