web-dev-qa-db-fra.com

PHP Erreur CURL - curl: (56) Echec Recv: connexion réinitialisée par un homologue

fondamentalement, cette erreur ne se produit que dans CURL

curl: (56) Recv failure: Connection reset by peer

Mais quand je visite directement le lien directement sur mon navigateur, ça marche!

Quelles sont vos recommandations pour résoudre celui-ci ou la cause de cette erreur?

Remarque: le serveur est codé dans ASP et il ne se produit que lors d'un seul appel d'API.

9
Jeffrey Monte

Je me souviens d'avoir affronté le même problème il y a longtemps. Bien que je ne me souvienne pas de ce qui a exactement réglé le problème, je me souviens de ce qui suit:

  1. J'essayais de passer directement les paramètres de requête dans l'URL et j'ai essayé de passer par la méthode POST

  2. J'ai essayé d'utiliser un proxy avec curl pour voir si j'étais éventuellement bloqué par l'autre serveur

  3. Je crois que j'ai également demandé à mon hôte d'examiner la situation et ils ont apporté des modifications aux paramètres d'Apache.

4
Sam

J'ai résolu ce problème en supprimant les caractères d'espacement de l'URL. Dans mon cas, c’était le serveur proxy qui s’est trompé, pas le serveur Web.

En PHP:

     curl_setopt($ch, CURLOPT_URL, trim($url));
4
Adam Albright

J'ai eu un problème similaire avec ce code:

        $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);

Je l'ai résolu en désactivant ceci:

        //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 44455);
0
user109764