卷曲有时会变慢

时间:2014-10-06 02:58:50

标签: php curl

在我的wamp服务器上每两秒调用一次相同的curl_exec。在大多数情况下,total_time大约是0.3秒,但在某些情况下(大约每30个呼叫,但不是确定性的),它是8-9秒。

curl_getinfo(快速):

[content_type] => application/json
[http_code] => 200
[header_size] => 141
[request_size] => 878
[filetime] => -1
[ssl_verify_result] => 20
[redirect_count] => 0
[total_time] => 0.312
[namelookup_time] => 0
[connect_time] => 0.047
[pretransfer_time] => 0.156
[size_upload] => 635
[size_download] => 45528
[speed_download] => 145923
[speed_upload] => 2035
[download_content_length] => -1
[upload_content_length] => 635
[starttransfer_time] => 0.203
[redirect_time] => 0
[redirect_url] => 

curl_getinfo(慢):

[content_type] => application/json
[http_code] => 200
[header_size] => 141
[request_size] => 878
[filetime] => -1
[ssl_verify_result] => 20
[redirect_count] => 0
[total_time] => 8.469
[namelookup_time] => 0
[connect_time] => 0.047
[pretransfer_time] => 0.703
[size_upload] => 635
[size_download] => 51340
[speed_download] => 6062
[speed_upload] => 74
[download_content_length] => -1
[upload_content_length] => 635
[starttransfer_time] => 2.531
[redirect_time] => 0
[redirect_url] => 

每当total_time为高时,starttransfer_time也很高。此外,pretransfer_time更高,而speed_download低于平常。

我试过了:

curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4 );

并使用IP而不是URL中的域名,但没有解决问题。

有没有人对可能导致这种情况的任何想法?

1 个答案:

答案 0 :(得分:1)

我也遇到了缓慢的cURL问题。 我正在实施一个"代理"在PHP中使用cURL。我犯了一个愚蠢的错误:

  1. 我转发了除#34; Host"
  2. 之外的所有标题
  3. 我修改了有效负载
  4. 就我而言,问题出在" Content-Length"标题,我也转发了。

    我通过替换字符串中的某些值来缩短有效负载。我假设,cURL库期望发送更多字节。这会导致20-30秒的超时。

    修复不是转发"内容长度"标题也是。 希望这对你们中的一些人有所帮助。