Ошибка PHP CURL - curl: (56) Ошибка при получении: сброс соединения по пиру
В основном эта ошибка возникает только в CURL
curl: (56) Recv failure: Connection reset by peer
Но когда я захожу по прямой ссылке прямо в моем браузере, это работает!
Каковы ваши рекомендации по устранению этого или причины этой ошибки?
Примечание: сервер закодирован в ASP и происходит только при одном вызове API
3 ответа
Я помню, как столкнулся с этой проблемой давным-давно. Пока я не помню, что именно решило проблему, но я помню, как попробовал следующее:
1) Я пытался передать параметры запроса в URL напрямую, и я пытался пройти через метод POST
2) Я попытался использовать прокси с curl, чтобы проверить, не заблокирован ли я другим сервером.
3) Полагаю, я также попросил моего хоста разобраться в этом, и они внесли некоторые изменения в настройки Apache.
Я решил эту проблему, удалив пробельные символы из URL. В моей ситуации произошел сбой прокси-сервера, а не веб-сервера.
В PHP:
curl_setopt($ch, CURLOPT_URL, trim($url));
У меня была похожая проблема с этим кодом:
$url = "http://xxx.xxx.xxx.xxx";
$ch = curl_init();
curl_setopt($ch, CURLOPT_PORT, 44455); //Set the port to connect to
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 44455);
curl_setopt($ch, CURLOPT_URL, $url);
echo $xml = curl_exec($ch);
if(curl_errno($ch))
{
echo 'error:' . curl_error($ch);
}
curl_close($ch);
Получил это путем отключения этого:
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 44455);