收到 HTTP 400 响应
HTTP 400 response received
已发送以下 HTTP 请求并收到 HTTP 400 响应。导致它失败的请求有什么问题?
POST /api/v2/organizations/4523jddfgd/projects HTTP/1.1
Host: www.reddit.com
Content-Type: application/json
Authorization: Bearer VALID_API_TOKEN
[
"name": "Project 1",
"package": "Standard",
"address": {
"street": "12456 Main St",
"city": "Dallas",
"zip": "75200",
"state": "TX",
"country": "USA"
}
]
这是一道面试题,大家能帮帮我吗?
查看 MDN wiki page 关于 HTML 状态码 400。
状态代码 400 指向客户端错误,例如格式错误的请求 body。另一个原因可能是缺少必需的 header。如 MDN wiki 页面所示,您不应尝试再次发送相同的未修改请求,因为结果将是相同的,因为它不是服务器端问题。
您应该做的是:再次查阅 API 文档并确保没有 header 遗漏并且请求 body 有效(即有效 JSON/ XML/ 任何正确的结构)。
查看您的请求,我发现 body 无效 JSON。
[
"name": "Project 1",
"package": "Standard",
"address": {
"street": "12456 Main St",
"city": "Dallas",
"zip": "75200",
"state": "TX",
"country": "USA"
}
]
无法解析,因此出现错误。数组不能保存属性。缺少的是 [
之后和结束 ]
之前的 {
和 }
。
使用以下请求 body 应该可以。
[
{
"name":"Project 1",
"package":"Standard",
"address":{
"street":"12456 Main St",
"city":"Dallas",
"zip":"75200",
"state":"TX",
"country":"USA"
}
}
]
编辑
正如@Evert 指出的那样,您更有可能需要将 []
替换为 {}
,因为 POST 请求用于创建单个新资源。但您可以绝对确定的唯一方法是阅读 API 文档。
{
"name":"Project 1",
"package":"Standard",
"address":{
"street":"12456 Main St",
"city":"Dallas",
"zip":"75200",
"state":"TX",
"country":"USA"
}
}
已发送以下 HTTP 请求并收到 HTTP 400 响应。导致它失败的请求有什么问题?
POST /api/v2/organizations/4523jddfgd/projects HTTP/1.1
Host: www.reddit.com
Content-Type: application/json
Authorization: Bearer VALID_API_TOKEN
[
"name": "Project 1",
"package": "Standard",
"address": {
"street": "12456 Main St",
"city": "Dallas",
"zip": "75200",
"state": "TX",
"country": "USA"
}
]
这是一道面试题,大家能帮帮我吗?
查看 MDN wiki page 关于 HTML 状态码 400。
状态代码 400 指向客户端错误,例如格式错误的请求 body。另一个原因可能是缺少必需的 header。如 MDN wiki 页面所示,您不应尝试再次发送相同的未修改请求,因为结果将是相同的,因为它不是服务器端问题。
您应该做的是:再次查阅 API 文档并确保没有 header 遗漏并且请求 body 有效(即有效 JSON/ XML/ 任何正确的结构)。
查看您的请求,我发现 body 无效 JSON。
[
"name": "Project 1",
"package": "Standard",
"address": {
"street": "12456 Main St",
"city": "Dallas",
"zip": "75200",
"state": "TX",
"country": "USA"
}
]
无法解析,因此出现错误。数组不能保存属性。缺少的是 [
之后和结束 ]
之前的 {
和 }
。
使用以下请求 body 应该可以。
[
{
"name":"Project 1",
"package":"Standard",
"address":{
"street":"12456 Main St",
"city":"Dallas",
"zip":"75200",
"state":"TX",
"country":"USA"
}
}
]
编辑
正如@Evert 指出的那样,您更有可能需要将 []
替换为 {}
,因为 POST 请求用于创建单个新资源。但您可以绝对确定的唯一方法是阅读 API 文档。
{
"name":"Project 1",
"package":"Standard",
"address":{
"street":"12456 Main St",
"city":"Dallas",
"zip":"75200",
"state":"TX",
"country":"USA"
}
}