2010-11-02 15 views
0

J'ai essayé de trouver une réponse à ceci, et ne peux pas sembler. Quel est le meilleur moyen de soumettre une simple demande POST à ​​un autre serveur de PHP? cURL semble courir atrocement lentement; Je reçois plusieurs secondes de chargement, en attente sur cURL. Des idées?Quelle est la meilleure façon de soumettre une requête POST de PHP?

EDIT: Sur demande, voici le code:

$x = curl_init("http://www.server.com/API.php"); 
    curl_setopt($x, CURLOPT_POST, 1); 
    curl_setopt($x, CURLOPT_POSTFIELDS, $inputdata); 
    $data = curl_exec($x); 
    curl_close($x); 
    echo $data; 

Il était, cependant, dans une boucle. Je suppose que la simple surveillance était probablement la source de mes problèmes.

+0

pouvez-vous poster votre code cURL? – KeatsKelleher

+0

Pourriez-vous poster un code que vous avez essayé? –

Répondre

3

Les prises sont un peu basses, mais assez rapides. Vous pouvez également essayer HttpRequest: http://php.net/manual/en/function.httprequest-send.php

Cependant, à mon avis, je ne pense pas que ce soit autant de cURL que votre connexion au serveur. Essayez de régler ce pour vous connecter et de voir quel est le problème:

curl_setopt($ch, CURLINFO_HEADER_OUT, true); 
curl_setopt($ch, CURLOPT_VERBOSE, true); 

et vérifiez vos paramètres DNS, et celui du site auquel vous vous connectez. Vous pouvez essayer de charger la page manuellement, et voir à quelle vitesse vous le faites sur votre connexion et votre navigateur. Vous pouvez également essayer d'obtenir la dernière édition de cURL et toutes les autres bibliothèques que vous utilisez avec elle. Si vous effectuez plusieurs demandes, utilisez un multi-handle cURL au lieu de plusieurs handles séparés. Et si vous n'avez pas besoin du corps de la page Web, et que vous soumettez simplement quelque chose, essayez NO_BODY à true, cela réduirait beaucoup le temps de chargement. Enfin, essayez la mise en cache ou le multithreading.

EDIT: Et essayez également de ne pas paramétrer autant d'en-têtes ou de cookies, ceux-ci ralentissent massivement votre vitesse. Et si vous voulez vraiment que nous travaillions sur une bonne réponse, postez votre code et je commenterai où je vois que des améliorations peuvent être faites. Et en passant, si vous avez activé ipv6 dans votre build cURL et ne l'utilisez pas, désactivez-le, j'entends des problèmes de lag avec ipv6. D'autres problèmes particuliers que je peux me rappeler incluent ne pas avoir un DNS inversé mis en place sur votre serveur.