如何将guzzle psr7响应转换为数组

问题描述

我希望检索一个API的内容并使用刀片中的内容。 如果返回响应,我将看到以下内容

{"CUSTOMER_NO":"00001292","VAL_1":"51610"}

但是我无法从上述输出中检索CUSTOMER_NOVAL_1字段。 也不允许将psr7响应转换为数组或字符串。 json_decode((string)$response->getBody,True)也不会返回任何内容。 我也无法直接在刀片中使用$ response作为数组。

我的API代码:

$sql="SELECT CUSTOMER_NO,VAL_1 from tablename where VAL_1=$test";
$stid = oci_parse($conn,$sql);     
oci_execute($stid);
$line = oci_fetch_array($stid,OCI_ASSOC);
echo json_encode($line);

我的控制器代码:

$client=new Client();
        $url='http://test.com/test.php';
        $response=($client->request('POST',$url,[ 'form_params' => [
        'ac_no' => $ac_no,]],array()));
        return $response;

我想分别获取CUSTOMER_NOVAL_1的值/在刀片中使用相同的值。 请给点光。

解决方法

您需要使用->getBody()->getContents()方法来获取json响应。

   $response=($client->request('POST',$url,[ 'form_params' => ['ac_no' => $ac_no,]],array()));
   $response = $response->getBody()->getContents();
   $res =json_decode($response,true);

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...