加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 你可以在Guzzle POST Body中包含原始JSON吗?

发布时间:2020-12-13 22:34:40 所属栏目:PHP教程 来源:网络整理
导读:这应该是太简单了,但我花了几个小时寻找答案,我真的被卡住了.我正在构建一个基本的Laravel应用程序,并且正在使用Guzzle来替换我目前正在制作的CURL请求.所有CURL函数都使用正文中的原始 JSON变量. 我正在尝试创建一个正常工作的Guzzle客户端,但服务器正在使
这应该是太简单了,但我花了几个小时寻找答案,我真的被卡住了.我正在构建一个基本的Laravel应用程序,并且正在使用Guzzle来替换我目前正在制作的CURL请求.所有CURL函数都使用正文中的原始 JSON变量.

我正在尝试创建一个正常工作的Guzzle客户端,但服务器正在使用“无效请求”进行重新计算,我只是想知道我发布的JSON是否有些可疑.我开始怀疑你是否不能在Guzzle POST请求体中使用原始JSON?我知道标头正在工作,因为我从服务器收到有效的响应,我知道JSON是有效的,因为它当前在CURL请求中工作.所以我卡住了:-(

任何帮助都会非常感激.

$headers = array(
            'NETOAPI_KEY' => env('NETO_API_KEY'),'Content-Type' => 'application/json','Accept' => 'application/json','NETOAPI_ACTION' => 'GetOrder'
        );

    // JSON Data for API post
    $GetOrder = '{
        "Filter": {
            "OrderID": "N10139","OutputSelector": [
                    "OrderStatus"
                ]
        }
    }';

    $client = new client();
    $res = $client->post(env('NETO_API_URL'),[ 'headers' => $headers ],[ 'body' => $GetOrder ]);

    return $res->getBody();
您可以通过 'json' request option将常规数组作为JSON发送;这也会自动设置正确的标题:
$headers = [
    'NETOAPI_KEY' => env('NETO_API_KEY'),'NETOAPI_ACTION' => 'GetOrder'
];

$GetOrder = [
    'Filter' => [
        'OrderID' => 'N10139','OutputSelector' => ['OrderStatus'],],];

$client = new client();
$res = $client->post(env('NETO_API_URL'),[
    'headers' => $headers,'json' => $GetOrder,]);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读