简介:当客户端发送的请求正文的媒体类型不被服务器所支持时,会返回 HTTP 状态码 415。本篇文章将探讨出现此问题的原因和解决方法。
在 HTTP 通信中,Content-Type 头部字段用于指示发送到服务器的数据的媒体类型。当客户端发送的请求正文的媒体类型不被服务器所支持时,服务器会返回 HTTP 状态码 415,表示服务器不支持请求的媒体类型。
出现这个错误的原因可能是客户端在发送请求时 Content-Type 头部字段设置不正确,或者服务器不支持客户端请求的媒体类型。要解决这个问题,可以采取以下几种方法:
在这个示例中,通过调用 ‘express.json()’ 中间件,服务器将支持 JSON 媒体类型。同时,通过调用 ‘express.urlencoded()’ 中间件并传递 ‘extended: true’ 参数,服务器将支持 URL 编码数据。
const express = require('express');const app = express();app.use(express.json()); // 支持 JSON 媒体类型app.use(express.urlencoded({ extended: true })); // 支持 URL 编码数据// 其他路由和中间件代码...
在这个示例中,通过在 headers 字典中指定 ‘Content-Type’ 为 ‘application/json’,确保了请求正文的 Content-Type 被正确设置。然后,使用 ‘requests.post()’ 方法发送 POST 请求到指定的 API 端点。
import requestsheaders = {'Content-Type': 'application/json'}response = requests.post('http://example.com/api', json={'key': 'value'}, headers=headers)