参数丢失或值为空 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”