Laravel - 即使网址正确,Guzzle也不会返回任何数据

时间:2015-06-19 20:25:26

标签: php laravel laravel-4 laravel-5 guzzle

我正在尝试从第三方API返回JSON数据 - http://postcodes.io/。我目前在我的控制器中:

 $client = new Client();
    $request = $client
        ->get('https://api.postcodes.io/postcodes/'.Input::get('postcode'));

    $statusCode = $request->getStatusCode();

    if ($statusCode >= 200 && $statusCode < 300) 
    {
       $json = Response::json($request); // Returns JSON decoded array of data.
    }

我正在尝试返回邮政编码信息:

  

https://api.postcodes.io/postcodes/OX495NU

如果我dd($request),则打印出来,其中包含200状态代码,但没有与之关联的数据:

JsonResponse {#245 ▼
  #jsonOptions: 0
  #data: "{}"
  #callback: null
  #encodingOptions: 15
  +headers: ResponseHeaderBag {#242 ▶}
  #content: "{}"
  #version: "1.0"
  #statusCode: 200
  #statusText: "OK"
  #charset: null
}

任何帮助,为什么会发生这种情况将不胜感激。

1 个答案:

答案 0 :(得分:0)

你看到的是Guzzle的原始响应,需要格式化。一个简单的方法是$response->getBody();

将此视为Laravel中的一个系列。当你获得数据时,它在一个包含大量额外数据的集合中可能很有用但是如果你只想要运行数据$user->toJson(); For Guzzle,如果你想去除所有额外的卷曲数据,协议信息,标题等,您只需要有效负载或正文。 $response->getBody();