我想用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