我正在嘗試用curl編寫請求。我想要得到兩點之間的距離。因此,我從我的數據庫中獲取這些點的數據來構建字符串。當我回應它時,最後的字符串看起來像這樣。無法通過cuRL從谷歌地圖請求中獲取JSON數據
http://maps.googleapis.com/maps/api/distancematrix/json?origins=40215+Düsseldorf+Königsallee 59&destinations=40215+Düsseldorf&sensor=false
我也試過用https代替http,但結果是一樣的。如你所見,它會返回一個非常好的JSON響應,但是當我這樣做後,我總是得到一個錯誤。
public function request($signedUrl) {
$ch = curl_init($signedUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
$this->response = json_decode($data);
}
$signedUrl
是requestUrl。
從谷歌的錯誤我得到的,當我var_dump($data)
是
400. That’s an error.
Your client has issued a malformed or illegal request. That’s all we know. "
當我的var_dump的響應,它只是給我空。
這裏有什麼問題,我該如何解決?我也試着用file_get_contents
讀取它,但沒有成功
在URL中'Königsallee'和'59'之間的空白怎麼樣? – Havelock
嗨@Havelock - 嘗試用'+'替換空格,並嘗試完全刪除它,但我仍然得到相同的結果。仍然說NULL。 這這裏是requestURL改變它 'HTTP後://maps.googleapis.com/maps/api/distancematrix/json起源= 40215 + +杜塞爾多夫Königsallee59&目的地= 40215 +杜塞爾多夫&傳感器= FALSE' – devShuba