php curl rest api响应不是json格式

时间:2018-07-27 10:37:15

标签: php json curl php-curl

我正在执行卷曲请求

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postData));
        curl_setopt($ch, CURLOPT_POST, 1);
        $headers = array();
        $headers = ["Content-Type:application/json","Accept:application/json"];
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        $result = curl_exec($ch);
        if (curl_errno($ch)) {
            echo 'Error:' . curl_error($ch);
        }
        curl_close ($ch);
        return $result;

上述curl请求应返回json格式的字符串,但会以javascript对象的形式获取字符串。

string(68) "{data:{errorCode:AC01,errorMessage:SansID 53563857 is exist.}}"

就像我尝试从post man api做相同的事情一样,返回完美的json。

{"data":{"errorCode":"AC01","errorMessage":"SansID 53563857 is exist."}}

请让我知道我在哪里做错了。

1 个答案:

答案 0 :(得分:0)

使用json_decode将String转换为Object(stdClass)或数组: 我在使用WordPress(cURL)和Laravel(passport)支持的API时遇到相同的问题,该API返回JSON但以字符串格式。我保存了回复

//save json string into variable json object and return result
$response = curl_exec($curl);
//convert t
return (json_decode($response));

请参阅此链接here,以获取类似的解决方案

查看此屏幕截图console logs for before and after the fix