首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cURL使用命令行成功,但使用php curl_exec实现504网关超时?

cURL使用命令行成功,但使用php curl_exec实现504网关超时?
EN

Stack Overflow用户
提问于 2022-08-10 03:11:53
回答 1查看 195关注 0票数 0

我试图在代码中使用php curl_setopt获取一些数据。但它经过2分钟的加载,然后得到504网关超时错误。下面是代码:

代码语言:javascript
运行
复制
function sendRequest($url, $data, $token = '') {
    $header[] = "Connection: keep-alive";

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    curl_setopt($ch, CURLOPT_HTTP_VERSION, 'CURL_HTTP_VERSION_1_1');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_VERBOSE, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36");

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
}

奇怪的是,我使用具有相同选项的命令行cURL成功地立即获取了数据:

代码语言:javascript
运行
复制
curl --url "http://x.x.x.x" --header "Connection: keep-alive" --http1.1 --verbose --request "POST" -d "data1=value1" -d "data2=value2" --user-agent "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.120 Safari/537.36"

承载代码和目标的服务器位于同一网络中,防火墙在两台服务器中均未激活。失败的原因是什么?

EN

回答 1

Stack Overflow用户

发布于 2022-08-10 06:55:01

不知道$data是什么。如果它是一个关联数组,请尝试

代码语言:javascript
运行
复制
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73300207

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档