我想用php cURL调用一些http web服务。当我尝试在浏览器中调用该服务时,我可以提出请求并获得成功响应。但每当我试着通过卷曲称呼它,它失败,错误消息:couldn't connect to host
我可以通过浏览器提交请求,但cURL说无法连接到主机,为什么?
我使用这里的代码如下:
$url = 'http://myserviceurl.com';
$fields = array(
'field1' => urlencode('field1value'),
'field2' => urlencode('field2value'),
'field3' => urlencode('field3value')
);
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, count($fields));
curl_setopt($ch, CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FAILONERROR, true);
$result = curl_exec($ch);
if($result === false)
{
echo sprintf('<span>%s</span>CURL error:',curl_error($ch));
return;
}
如何解决/诊断呢?
也许该网站拒绝来自useragent curl的请求?尝试使用'curl_setopt($ ch,CURLOPT_USERAGENT,“我的用户代理”)欺骗你的useragent;' – Jordy