代码之家  ›  专栏  ›  技术社区  ›  Brainmaniac

如何使用Guzzle从街景图像元数据中检索响应状态

  •  1
  • Brainmaniac  · 技术社区  · 7 年前

    我用大嘴巴打电话给 街景图像API 从我的Laravel应用程序。我希望能够从我的请求中检索状态代码,如 docs .

    我特别想了解:

    {
        "status" : "ZERO_RESULTS"
    }
    

    这是我的控制器的Guzzle代码(我在名称空间中正确地包含了Guzzle)。GeT呼叫中的地址正在生成“抱歉,这里没有图像”:

    $client = new Client();
            $res = $client->get('https://maps.googleapis.com/maps/api/streetview?size=800x600&location=78.648401,14.194336&key=my-API-key&fov=120&heading=90');
            $res->getStatusCode();
            dd($res->getBody());
    

    但是。如图所示,元数据是空的。当我知道 $res->getstatuscode(); 它给了我一个 二百 .

    我该如何捕捉零结果?

    enter image description here

    1 回复  |  直到 7 年前
        1
  •  1
  •   ajthinking    7 年前

    先生,请注意有两个不同的端点:一个用于元数据,另一个用于图像检索。您只使用图像检索。下面是一个检查给定坐标是否有图像的示例方法

    private function coordinateHasImage($coordinate)
    {
        $client = new Client();
        $res = $client->get(  'https://maps.googleapis.com/maps/api/streetview/metadata?size=600x300&location=' . $coordinate . '&fov=90&heading=235&pitch=10&key=YOUR_KEY_HERE');
        return json_decode($res->getBody()->getContents())->status == "OK";
    }