php - 警告: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 调用将失败。有什么我可以做的(除了抑制错误)来修复它吗?
/爱
脾气暴躁的木偶
解决方案
对于任何有同样问题的人。对我来说,它是所需的发布方法 (PUT) 和搞砸的 http_build_query() 的组合。
我最终使用:
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT"); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
这解决了它。
祝你好运<3
推荐阅读
- java - 我应该使用 60GB 堆大小吗?
- angular - 为 JHipster Angular 应用程序构建 webpack prod 配置文件时的 css-loader 未知词
- javascript - 如何修复“TS2769:没有超载匹配此调用”
- java - 仿蓝牙人机接口设备
- django - Python Django:计算工作日
- javascript - 在纯 JavaScript 中删除多个不同元素(不是子元素)的属性的函数
- python - 根据条件为变量赋值
- python - 在 python 中将 300 个 CSV 文件转换为一个 2D 数组
- wpf - WPF:如何知道打开窗口、用户控件名称
- matlab - Octave函数获取矩阵中的连续列组