PHP curl非常慢,来自shell的cURL非常快

时间:2016-08-25 22:52:43

标签: php performance shell curl

由于某种原因,php curl_exec()非常慢。我把它缩小到curl_getinfo()方法调用所显示的“starttransfer_time”:

[url] => https://pilot-payflowpro.paypal.com/
[content_type] => text/namevalue
[http_code] => 200
[header_size] => 151
[request_size] => 272
[filetime] => -1
[ssl_verify_result] => 0
[redirect_count] => 0
[total_time] => 34.139412
[namelookup_time] => 0.040742
[connect_time] => 0.085858
[pretransfer_time] => 0.205325
[size_upload] => 135
[size_download] => 200
[speed_download] => 5
[speed_upload] => 3
[download_content_length] => 200
[upload_content_length] => 0
[starttransfer_time] => 34.139382
[redirect_time] => 0
[redirect_url] =>
[primary_ip] => 173.0.82.163
[certinfo] => Array
    (
    )

但是,我似乎无法弄清楚导致长starttransfer_time的原因。名称查找,连接和预转移都非常合理。我试过调整DNS的东西,IPV4 over IPV6等。

我环顾四周,谷歌搜索,但迄今为止没有任何帮助我解决这个问题。如果我直接从shell尝试相同的curl命令,它的速度很快......几分之一秒。没有像上面所示的~30秒。

这是我的设置:

define('URL', 'https://pilot-payflowpro.paypal.com');
$ch = curl_init(URL);
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, FALSE); 
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
$response = curl_exec($ch);

任何人都知道这里有什么?

1 个答案:

答案 0 :(得分:0)

这实际上与Payflow网关有关。由于某种原因,我的凭证导致交易非常缓慢。

我尝试了另一套凭证,它快速尖叫......所以......