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

前端之家收集整理的这篇文章主要介绍了php – 你可以在Guzzle POST Body中包含原始JSON吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这应该是太简单了,但我花了几个小时寻找答案,我真的被卡住了.我正在构建一个基本的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,]);

猜你在找的PHP相关文章