首页 > 解决方案 > 警告:http_build_query():参数 1 应为数组或对象(但它有效)

问题描述

我收到以下警告:
Warning: http_build_query(): Parameter 1 expected to be Array or Object.

我知道这个错误代表什么并且知道我为什么得到它,但我不知道如何修复它,因为代码就像一个魅力,所以也许你们可以帮助我?

我使用以下 CURLOPT_POSTFIELDS 卷曲一个 url:
curl_setopt( $ch, CURLOPT_POSTFIELDS, http_build_query(json_encode($data)));

json_encode($data) 的 vardump =

string(57) {"transporterCode":"TNT","trackAndTrace":"3SAOLD1234567"}"

因此出现错误(它是一个字符串),但是我不允许更改任何内容,因为这样 API 调用将失败。有什么我可以做的(除了抑制错误)来修复它吗?

/爱

脾气暴躁的木偶

标签: phpapicurl

解决方案


对于任何有同样问题的人。对我来说,它是所需的发布方法 (PUT) 和搞砸的 http_build_query() 的组合。

我最终使用:

       curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
       curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));

这解决了它。

祝你好运<3


推荐阅读