Curl ответ код 0
Имеется определенный curl запрос(php ), при запросе на сайт возвращает http_code 0, через браузер этот же запрос возвращает 302. Также в браузере проскакивает этот же запрос методом OPTIONS, имеется предположение, может это как то взаимосвязано, и нужно еще посылать запрос OPTIONS? Или может дело вообще в другом?
function func1($param1, $param2){
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://api.sitename.ru/file.php');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip, deflate, br');
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Accept: application/json, text/plain, */*',
'Accept-Encoding: gzip, deflate, br',
'Content-Type: application/json;charset=UTF-8'
));
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode(array(
'param1' => $param1,
'param2' => $param2
)));
$out = curl_exec($curl);
$result = json_decode($out, true);
return $result;
}
Ответы (2 шт):
Автор решения: Daniel Protopopov
→ Ссылка
У вас запрос идёт на HTTPs, поэтому либо выключайте проверку сертификата через
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, false);
либо устанавливайте путь до сертификата через
curl_setopt($ch, CURLOPT_CAINFO, “/var/your_path/to/cert.ca”);
Автор решения: Aziz Umarov
→ Ссылка
Это работает CORS. Почитайте тут
<?php
header("Access-Control-Allow-Origin: http://example.com");?>