首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Laravel 7中将身体请求作为字符串发送?

如何在Laravel 7中将身体请求作为字符串发送?
EN

Stack Overflow用户
提问于 2020-09-06 15:09:19
回答 1查看 605关注 0票数 0

我的情况是

  • 使用Laravel 7
  • 想使用Shopee

用Laravel发送请求应该是这样的

代码语言:javascript
复制
$res = Http::withHeaders([
        'Content-Type' => 'application/json',
        'Authorization' => $secret_key
    ])->post($api_url, [
        "ordersn_list" => [$order_no],
        "shopid" => $shop_id,
        "partner_id" => $partner_id,
        "timestamp" => $timestamp
    ]);

但是Shopee不需要主体部分中的空间(不能以JSON格式发送)。我试过了

代码语言:javascript
复制
$res = Http::withHeaders([
        'Content-Type' => 'application/json',
        'Authorization' => $secret_key
    ])->post($api_url, $body_string);

它不能工作,因为它必须是一个数组。返回错误Argument 2 passed to Illuminate\Http\Client\PendingRequest::post() must be of the type array, string given

EN

回答 1

Stack Overflow用户

发布于 2020-09-06 15:28:22

试试这个:

代码语言:javascript
复制
$data = [
    "ordersn_list" => [$order_no],
    "shopid" => $shop_id,
    "partner_id" => $partner_id,
    "timestamp" => $timestamp
];

$res = Http
    ::asJson()
    ->withHeaders([
        'Authorization' => $secret_key
    ])
    ->post($api_url, $data);

或者:

代码语言:javascript
复制
$data = [
    "ordersn_list" => [$order_no],
    "shopid" => $shop_id,
    "partner_id" => $partner_id,
    "timestamp" => $timestamp
];

$res = Http
    ::withHeaders([
        'Authorization' => $secret_key
    ])
    ->withBody(json_encode($data), 'application/json')
    ->post($api_url);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63765635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档