基本的に、このエラーは CURL でのみ発生します
curl: (56) Recv failure: Connection reset by peer
しかし、ブラウザで直接リンクに直接アクセスすると、機能します!
これを修正するための推奨事項、またはこのエラーの原因は何ですか?
注: サーバーは ASP でコーディングされており、1 回の API 呼び出しでのみ発生します。
URL から空白文字を削除することで、この問題を解決しました。私の状況では、Web サーバーではなく、プロキシ サーバーでエラーが発生していました。
PHP の場合:
curl_setopt($ch, CURLOPT_URL, trim($url));
ずっと前に同じ問題に直面したことを覚えています。問題を正確に整理したことは覚えていませんが、次のことを試したことを覚えています。
URLにクエリパラメータを直接渡そうとしていて、POSTメソッドを介して渡してみました
他のサーバーによってブロックされている可能性があるかどうかを確認するために、curl でプロキシを使用してみました
ホストにも調査を依頼し、Apache の設定を変更したと思います。
私はこのコードで同様の問題を抱えていました:
$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);