首页 > 解决方案 > 格式错误的 HTTP 请求 Laravel

问题描述

我正在构建一个 Laravel 后端 API。API 已经实现,我已经测试了所有必要的方法和路由。我现在正忙于使用 Postman 创建一些测试请求,但是我在 Laravel 中不断收到“格式错误的 HTTP 请求”错误。

服务器端验证是使用 Laravel Passport 完成的,下面是 Postman 生成的 HTTP 代码

POST /api/my_data_url HTTP/1.1
Host: 127.0.0.1:8000
Accept: application/json
Authorization: Bearer oauth_key_goes_here
Content-Type: application/json

{
    "value_1": 123,
    "value_2": 123,
    "value_3": 123
}

我已经查看了 JSON:API 标准,但是对于这个应用程序的目的来说这不是必需的,因为我没有创建公共 API,所以这将是矫枉过正。这是我将使用的我自己的应用程序。在控制器方面,我只希望它回显,因此目前看起来像这样:

/**
* Store a newly created resource in storage.
*
* @param  \Illuminate\Http\Request  $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
  {
     return response()->json($request->json()->all(), 200);
  }

我的最终目标只是将一些传感器数据传递给 Laravel API,并使用适当的控制器方法来验证并将其保存到数据库中。我错过了什么,感觉就像我犯了一个愚蠢的错误?

PS我知道还有另一个问题非常相似,但是似乎该问题没有可以帮助我的解决方案。

标签: phplaravelhttppostman

解决方案


我认为我的原始答案足够详细,因为它只是一个配置错误。我将尝试在这里更详细的第二个答案。请注意,我使用的是基于 Linux 的桌面应用程序,我无法评论其他版本,因为我不使用它们。我的 Laravel 应用程序也是使用 Laravel 6 构建的。

我的错误是由不正确的请求授权设置引起的。下面的步骤使我能够纠正这个问题。

打开 Postman 应用程序后,请执行以下操作:

  1. Create a request通过单击桌面应用程序起始页右侧的标签在 Postman 中创建请求
  2. 您现在将位于请求创建选项卡中。在此范围内,有多个选项卡可让您配置部分请求。例如ParamsAuthorization等等。
  3. 导航到Authorization选项卡并更改类型下拉列表以匹配您的 Laravel 应用程序使用的授权模式。

这些是我为解决问题而采取的步骤。


推荐阅读