laravel - 未定义的索引数据 laravel
问题描述
我在 laravel 上集成了这个登录 api:
端点:http://127.0.0.1:8888/api/v1/users/login/
范围:
{"data":{
"email":"admin@mail.com",
"password":"admin@123",
"user_type":"1",
"encrypted":false
},"encoded_data":"yes"}
控制器:
我正在从表单中发布数据:
$request->validate([
'username' => 'required',
'password' => 'required',
'user_type' => 'required'
]);
$ds = $request->all();
$url = $this->base_api_url . 'api/v1/users/login/';
$apiRequest = [
'data' => [
'email' => $ds['username'],
'password' => $ds['password'],
'user_type' => $ds['admin'],
'encrypted' => false
],
'encoded_data' => 'yes',
];
$apiResponse = Http::acceptJson()->post($url, $apiRequest);
dd($apiResponse);
它的回报:
{"error":1,"success":false,"message":"Undefined index: data"}
这是我在 $apiRequest 中发送的参数:
array:2 [▼
"data" => array:4 [▼
"email" => "admin@mail.com"
"password" => "admin@123"
"user_type" => "1"
"encrypted" => false
]
"encoded_data" => "yes"
]
api在邮递员上工作正常:
解决方案
LaravelHttp::post
发送一个普通的 post 请求(表单数据)。您还应该发送Content-type: application/json
标头以便 Laravel API 理解它。
尝试使用以下内容:
$apiResponse = Http::accept('application/json')->post($url, $apiRequest);
// or
$apiResponse = Http::acceptJson()->post($url, $apiRequest);
推荐阅读
- c# - 没有冲突的高性能散列?
- azure - azcopy v10 copy 不复制 blob 元数据
- amazon-web-services - 当 vpn 隧道启动或关闭时触发 sns
- c++ - 是否从等待返回到悬空的“this”实例的未定义行为?
- java - 在处理 apache Beam 框架时,Python 和 java 有什么区别?
- javascript - 当样式属性在宽度或高度之后排序时,jQuery 元素创建会删除宽度和高度
- python - python DataFrame中的嵌套循环以创建多个时间序列预测
- java - 如何在 Java 中以原因中断线程/未来/执行程序?
- android - com.google.android.gms:play-services-analytics-impl:[17.0.0] 是什么意思,因为没有可用的版本
- pandas - 使用一个关键变量比较 Python 和 R 中的两个数据帧