当前位置: 首页 > 知识库问答 >
问题:

Google Maps PHP CURL问题“您的客户端发出了一个格式错误或非法的请求。这就是我们所知道的。”

金高飞
2023-03-14

我有一个函数,使用CURL和谷歌地图应用编程接口返回地址的坐标。

代码如下:

function get_coordinates($address_string) {

    $address = urlencode($address_string);
    $url = "https://maps.googleapis.com/maps/api/geocode/json?address=" . $address . "&key=" . $api_key;

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_PROXYPORT, 3128);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    $response = curl_exec($ch);
    curl_close($ch);
    $response_a = json_decode($response);
    $status = $response_a->status;

    return $response;

}

代码对我和我使用它的99%的网络服务器都很好,但是对于大约1%的服务器,谷歌会返回错误消息:

Your client has issued a malformed or illegal request. That’s all we know.

我已经检查过了,googleapi键是正确的,PHP CURL已启用,PHP版本与它正在使用的PHP版本匹配。

有人能想到其他可能导致谷歌返回此消息的因素吗?

共有3个答案

蔡理
2023-03-14

我尝试了RESCUE 1155建议的解决方案,但没有成功。

urlencode($address)

他为我工作。

阚元白
2023-03-14

该错误是由空格引起的,因此请确保您的$address_string没有空格。

司空俊雄
2023-03-14

由于$address变量的地址带有空格,请使用str_replace并将空格替换为符号。

它将工作,我面临着同样的问题,并以这种方式修复。

 类似资料:
  • 我一直在使用Django和Djangorest框架编程API,以便在Google App Engine中部署。API基本上是一个包注册表,因此您可以使用API创建、更新、获取和删除包。 所有endpoint似乎都工作,除了一个。唯一不起作用的终结点是显示在线注册表中所有包的分页列表的终结点。 所有endpoint都在工作,但由于某种原因,当我点击特定的endpoint“/packages/”时,G

  • 我正在尝试获取youtube搜索结果的页面。在这里,我输入了一个视频名称,我正在尝试获取搜索结果的html页面。 我使用http模块发送和接收数据。 这是我收到的结果页 我不能理解错误的网址的原因

  • YouTube官方网站经常出错。如果我尝试,它在匿名模式下工作。这说明问题是由浏览器上的cookie/cache/localstorage/application数据引起的。 如果我删除数据,它将再次开始工作,但是,我将需要在我使用的所有gmail帐户中再次登录。 我已经要求谷歌(在反馈和推特上)对此进行调查,但他们无能为力。 因此,问题是: 如果有人遇到过这个问题,您是否已经了解了为什么以及如何

  • 我正在尝试解决数组旋转的程序。我在代码中遇到分段错误。有人能告诉我这个代码中的问题在哪里吗? 这就是问题所在 给定一个大小为N的未排序数组arr[],将其旋转D元素(顺时针)。 输入的第一行包含T表示测试用例的数量。每个测试用例的第一行包含两个空格分隔的元素,N表示数组的大小,整数D表示旋转的数字大小。随后的行将是N个空格分隔的数组元素。 我已经用下面的代码解决了它。

  • 当我运行我的gRPC客户端,它试图将请求流式传输到服务器时,我收到了这个错误:"TypeError: has typelist_iterator,但期望其中之一:bytes, unicode" 我需要以某种方式对我发送的文本进行编码吗?错误消息有一定的意义,因为我肯定是在传入一个迭代器。我从gRPC留档中假设这是需要的。(https://grpc.io/docs/tutorials/basic/p