Php 无法使用cuRL从Google Maps请求获取JSON数据

Php 无法使用cuRL从Google Maps请求获取JSON数据,php,json,google-maps,curl,Php,Json,Google Maps,Curl,我正试图用curl写一个请求。我想得到两点之间的距离。因此,我从数据库中获取这些点的数据来构建字符串。最后一个字符串在我回显时是这样的 http://maps.googleapis.com/maps/api/distancematrix/json?origins=40215+Düsseldorf+Königsallee 59&destinations=40215+Düsseldorf&sensor=false 我也尝试了https而不是http,但结果是一样的 正如您所看到的,

我正试图用curl写一个请求。我想得到两点之间的距离。因此,我从数据库中获取这些点的数据来构建字符串。最后一个字符串在我回显时是这样的

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是请求URL

当我使用var_dump$数据时,我从Google得到的错误是

当我var_转储响应时,它只给我null

这里可能有什么问题,我如何解决?我也试着把它和文件内容一起读入,但没有成功。您收到了错误的请求,因为URL未编码

<?php
$urlx='http://maps.googleapis.com/maps/api/distancematrix/json?origins=40215+D%C3%BCsseldor%20%E2%80%8Bf+K%C3%B6nigsallee59&destinations=40215+D%C3%BCsseldorf&sensor=false';
$ch = curl_init($urlx);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
var_dump(($data));
作品[测试]。您收到了错误的请求,因为URL未编码

<?php
$urlx='http://maps.googleapis.com/maps/api/distancematrix/json?origins=40215+D%C3%BCsseldor%20%E2%80%8Bf+K%C3%B6nigsallee59&destinations=40215+D%C3%BCsseldorf&sensor=false';
$ch = curl_init($urlx);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);
var_dump(($data));

URL中Königsallee和59之间的空白区域如何?Hi@Havelock-尝试用+替换该空间,并尝试将其完全删除,但我仍然得到相同的结果。还是说空。这是更改后的requestURLhttp://maps.googleapis.com/maps/api/distancematrix/json?origins=40215+Düsseldorf+Königsallee59&destinations=40215+Düsseldorf&sensor=false URL中Königsallee和59之间的空白如何?Hi@Havelock-试图用+替换该空间,并试图将其完全删除,但我还是一样。还是说空。这是更改后的requestURLhttp://maps.googleapis.com/maps/api/distancematrix/json?origins=40215+杜塞尔多夫+Königsallee59&destinations=40215+杜塞尔多夫&sensor=falseha,好的,是的,成功了。所以我想用一个urlencodeurl来包装这个url,对吗?哈哈,好的,是的,这很有效。所以我想只要用urlencodeurl包装url就可以了,对吧?