php - 慢 CURL 请求 PHP
问题描述
我对我公司在 google appengine 上的 API 的 POST 请求有问题,而发出请求的脚本在另一个非 Google 服务器上。
我向 API 发出两个连续请求,第一个(POST)用于获取访问令牌,而第二个(GET)用于检索我需要的实际数据。
代码如下:
switch ($method){
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
// OPTIONS:
curl_setopt($curl, CURLOPT_URL, $url);
if(!is_null($headers)){
curl_setopt($curl, CURLOPT_HTTPHEADER,$headers);
}
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// EXECUTE:
$result = curl_exec($curl);
curl_close($curl);
return $result;
请求时间变化很大,从不到 1 秒到超过 255 秒。
查看 curl_getinfo 输出,我发现困难的部分是connect_time
,它主要在第二个请求(即 GET 请求)中变得很长(更频繁)。
我为 cURL 选项尝试了许多参数,例如强制 IPV6 或 IPV4 没有任何改变,也许它会好转 20 次,然后问题再次发生。
提前感谢您的帮助,如果需要,请向我询问其他详细信息。
解决方案
推荐阅读
- python - api request how to use postman
- javascript - RNGE Physics update speed during game
- python - discord py - 如何检查成员在特定时间是否具有特定角色?
- database - AIP 备份 - 使用 Docker
- ruby-on-rails - 使用自定义控制器更改编辑操作?
- f# - F# 问题中的 BF 解释器
- tailwind-css - 调整所有项目的比例/缩放 - Tailwind
- c# - Specflow C# - 加载/编辑/保存 xml 文件
- javascript - Javascript - 使用 setter 初始化类,其中 set 方法与字段同名抛出: RangeError:超过最大调用堆栈大小
- javascript - 在 jsfiddle 中正常工作时无法在浏览器上显示我的图表