我在使用curl調取介面取得資料時,出現了curl_errno()回傳錯誤碼 '6' 的情況,百度了一下
<code>CURLE_COULDNT_RESOLVE_HOST (6) Couldn't resolve host. The given remote host was not resolved.</code>
原來程式是可以正常取得介面回傳資料的,這個情況是突然出現的,不知道是不是api限制了呼叫?目前還不知道具體解決辦法,大家如果有遇到相同情況,可以分享一下解決辦法,謝謝。
PS:直接在瀏覽器存取介面url是可以取得得到資料的。
curl代碼:
<code>public function getApiDataWithCurl($params = array()){ $doc = array( 'result'=>0, 'content'=>'', ); if(!isset($params['feed_id'])) return $doc; if(!isset($params['apikey'])) return $doc; $getUrl = $this->apiUrl.'?'; foreach($params as $k => $v){ if($v != ''){ $getUrl .=$k.'='.$v.'&'; } } $getUrl = substr($getUrl,0,strlen($getUrl)-1); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$getUrl); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, false); $response_content = curl_exec($ch); $error_code = curl_errno($ch); $curl_info = curl_getinfo($ch); curl_close($ch); $response_content = simplexml_load_string($response_content); $json = json_encode($response_content); $response_content = json_decode($json,TRUE); if($error_code || (!$response_content && $curl_info['http_code']!=200)){ return 'CURL ERROR: error code '.$error_code; }else{ $doc = array( 'result'=>1, 'content'=>$response_content, ); return $doc; } }</code>
我在使用curl調取介面取得資料時,出現了curl_errno()回傳錯誤碼 '6' 的情況,百度了一下
<code>CURLE_COULDNT_RESOLVE_HOST (6) Couldn't resolve host. The given remote host was not resolved.</code>
原來程式是可以正常取得介面回傳資料的,這個情況是突然出現的,不知道是不是api限制了呼叫?目前還不知道具體解決辦法,大家如果有遇到相同情況,可以分享一下解決辦法,謝謝。
PS:直接在瀏覽器存取介面url是可以取得得到資料的。
curl代碼:
<code>public function getApiDataWithCurl($params = array()){ $doc = array( 'result'=>0, 'content'=>'', ); if(!isset($params['feed_id'])) return $doc; if(!isset($params['apikey'])) return $doc; $getUrl = $this->apiUrl.'?'; foreach($params as $k => $v){ if($v != ''){ $getUrl .=$k.'='.$v.'&'; } } $getUrl = substr($getUrl,0,strlen($getUrl)-1); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL,$getUrl); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, false); $response_content = curl_exec($ch); $error_code = curl_errno($ch); $curl_info = curl_getinfo($ch); curl_close($ch); $response_content = simplexml_load_string($response_content); $json = json_encode($response_content); $response_content = json_decode($json,TRUE); if($error_code || (!$response_content && $curl_info['http_code']!=200)){ return 'CURL ERROR: error code '.$error_code; }else{ $doc = array( 'result'=>1, 'content'=>$response_content, ); return $doc; } }</code>
這是無法解析網域的問題,你試試把url打出來,看看能否ping通
curl可以貼一下麼
看你這個是GET方式傳值請求吧!你直接用file_get_content
試試看呢!是不是對方設定白名單了