PHP curl 超时问题探讨 Operation timed out after 1001 milliseconds with 0 out of -1 bytes received

2020-05-14 13:31:53 +08:00
 floraX
我用 curl post json 数据给另外一个接口,对方可以收到数据,但是我收不到返回值。

打印错误,Operation timed out after 1001 milliseconds with 0 out of -1 bytes received
搜索解决办法,每有一个是对的,都是模棱两可的乱七八糟的答案,瞎扯淡!

另外,我 post 的数据,是由 array json_encode 的 json 数据,做了一个测试,当我把 array 里面的数值,减少到 2 -3 个时候,就有返回值了,但是 array 里面的也就 20 -30 个数值,也不大啊,

头疼,有朋友预计过不,探讨下 !


代码如下:

$curl = curl_init();
curl_setopt_array($curl,
array(
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "gzip",
//CURLOPT_MAXREDIRS => 200,
CURLOPT_TIMEOUT => 1,
//CURLOPT_NOSIGNAL=>1,
//CURLOPT_TIMEOUT_MS=>200,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => array("Content-Type: application/json; charset=utf-8"),
)
);
$response = curl_exec($curl);
//$err = curl_error($curl);
curl_close($curl);
2571 次点击
所在节点    问与答
4 条回复
littleylv
2020-05-14 13:37:40 +08:00
CURLOPT_TIMEOUT => 1,

https://www.php.net/manual/en/function.curl-setopt.php :
CURLOPT_TIMEOUT The maximum number of seconds to allow cURL functions to execute.

你逗我的吗
floraX
2020-05-14 13:48:58 +08:00
@littleylv 感谢 V 友的回复,我把 CURLOPT_TIMEOUT 改为 10,依然没有返回值,error 还是 Operation timed out after 10001 milliseconds with 0 out of -1 bytes received


谢谢了 !
msg7086
2020-05-14 19:34:59 +08:00
超时啊,服务器端还没返回数据你就傲娇关连接了。
对方收到数据以后及时返回了吗?
floraX
2020-05-15 10:19:42 +08:00
@msg7086 对方确实收到收据了,也返回了,我这边就是 报超时 的错误。

当我把 post 的数据内容减少,就可以了。初步怀疑,是 post 量大,但的确没多少,是不是应该 改啥配置文件啥的。
另外,有 上传文件接口,50m,没问题。

感觉是 curl 的问题,post 量多,就没有返回值,报超时错误,量少,就正常收到返回值,不清楚修改啥配置呢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671582

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX