我试图在代码中使用php curl_setopt
获取一些数据。但它经过2分钟的加载,然后得到504网关超时错误。下面是代码:
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成功地立即获取了数据:
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"
承载代码和目标的服务器位于同一网络中,防火墙在两台服务器中均未激活。失败的原因是什么?
发布于 2022-08-10 06:55:01
不知道$data
是什么。如果它是一个关联数组,请尝试
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data));
https://stackoverflow.com/questions/73300207
复制相似问题