参数丢失或值为空 laravel

Posted

技术标签:

【中文标题】参数丢失或值为空 laravel【英文标题】:param is missing or the value is empty laravel 【发布时间】:2021-11-12 20:59:40 【问题描述】:

我正在使用提供的 api 创建一个用户。我正在使用 Laravel 并尝试将数据存储到 smartrmail 和文档以创建新订阅者在这里 https://docs.smartrmail.com/en/articles/636615-list-subscribers 每次我发送请求时,我都会收到以下错误:

Server error: `POST https://go.smartrmail.com/api/v1/lists/1sptso/list_subscribers` resulted in a `500 Internal Server Error` response: "error":"param is missing or the value is empty: subscribers"

"error":"参数丢失或值为空:订阅者"

我正在使用 Laravel,我的代码在这里

Route::get('smartrmail',function()

    $headers = [
        'Accept' => 'application/json',
        'Authorization' => 'token f91715d5-3aac-4db3-a133-4b3a9493a9a4',
        'Content-Type' => 'application/json',
    ];
    
    $client = new GuzzleHttp\Client([
        'headers' => $headers
    ]);
    $data = [
        "subscribers"=>[
            [
                "email"=> "vanhalen@example.com",
                "first_name"=> "van",
                "last_name"=> "halen",
                "subscribed"=> true,
            ]
        ]
    ];
    $res = $client->request('POST', 'https://go.smartrmail.com/api/v1/lists/1sptso/list_subscribers', [
    
        'form_params' => [
                $data 
                       
            ]

    ]);
    return($res);
    // echo $res->getStatusCode();
);

谁能帮我弄清楚这里出了什么问题。我正在关注这个文档 https://docs.smartrmail.com/en/articles/636615-list-subscribers 创建一个新的订阅者

【问题讨论】:

【参考方案1】:

代替

'form_params' => [
    $data
]

使用

'json' => $data

说明

你想发送json数据(我假设因为你设置了header'Content-Type' => 'application/json',这意味着你正在发送json),但是form_params用于application/x-www-form-urlencoded

json 将标头设置为application/json,并将数据发送为json

当您设置正确的标题时,这也应该有效:

'body' => $data

您可以在 Guzzle 文档中找到参数的正确名称,我使用了 uploading data 部分。

【讨论】:

嗨,谢谢它的工作。你能告诉我为什么不是form_params而是json 我已经用解释更新了答案。希望我做得很好:)

以上是关于参数丢失或值为空 laravel的主要内容,如果未能解决你的问题,请参考以下文章

我在尝试显示用户个人资料页面时遇到错误“参数丢失或值为空:user_id”

Shell 字符串操作符实例

如果值为 X 或值为 Y,C# Fluent 验证

ASP .NET MVC Redirecttoaction 将参数传递给 Index 但值为空

在php中提交表单后会话丢失其数据或值

小程序页面跳转传参参数值为url时参数时 会出现丢失