2010-11-02 70 views
0

我一直在试图找到这个答案,似乎无法。从PHP提交简单POST请求到另一台服务器的最佳方式是什么? cURL似乎运行极其缓慢;我得到几秒钟的加载,等待cURL。有任何想法吗?从PHP提交POST请求的最佳方式是什么?

编辑:根据要求,下面的代码:

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

这是,但是,在一个循环。我假设简单的监督可能是我的问题的根源。

+0

你可以发布你的cURL代码吗? – KeatsKelleher 2010-11-02 21:07:15

+0

你可以发布你尝试过的任何代码吗? – 2010-11-02 21:07:39

回答

3

套接字有点低平,但非常快。你也可以尝试HttpRequest:http://php.net/manual/en/function.httprequest-send.php

但是,在我看来,我不认为它是如此多的cURL作为您的服务器连接。尝试设置此日志,看看有什么问题:

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

并检查您的DNS设置,你连接到网站。您可以尝试手动加载页面,并查看您在连接和浏览器上的速度。您也可以尝试获取最新版本的cURL以及您使用的任何其他库。如果您正在进行多个请求,请使用cURL多个句柄,而不是多个单独的句柄。如果您不需要网页正文,只需提交一些内容,请将NO_BODY设置为true,这样可以减少很多加载时间。最后,尝试缓存或多线程。

编辑:也尝试不设置这么多的标头或饼干,那些大量拖动你的速度。如果你真的希望我们能够很好地解决问题,请发布你的代码,我会评论我在哪里可以获得改进。顺便说一下,如果你的cURL版本中启用了ipv6,并且不使用它,请将其禁用,我听说ipv6存在滞后问题。我记得的其他特殊问题包括没有在服务器上设置反向DNS。

相关问题