You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Content-Type为text/plain的API请求体内容?

解决Content-Type为text/plain时获取API请求体的问题

默认情况下,Express的express.json()中间件仅解析application/json类型的请求体,不会处理text/plain格式,这就是你用req.body获取不到内容的原因。以下是具体解决方法:

步骤1:添加text/plain解析中间件

在Express应用中添加express.text()中间件,用于解析文本类型的请求体,确保该中间件在路由定义之前配置:

const express = require('express');
const app = express();

// 解析text/plain类型的请求体
app.use(express.text({ type: 'text/plain' }));

// 你的API路由
app.get('/update-digital-payment-status', (req, res) => {
  // 现在可以通过req.body获取到文本格式的请求体内容
  console.log('请求体内容:', req.body);
  // 后续业务逻辑处理
  res.status(200).send('请求已接收');
});

app.listen(3010, () => {
  console.log('服务器运行在端口3010');
});

步骤2:(可选)规范请求方法

虽然部分服务器支持GET请求携带请求体,但HTTP规范中GET请求通常不包含请求体,建议将请求方法改为POST,对应的curl命令调整为:

curl \
  --location \
  --request POST \
  --header 'X-Vymo-Auth-Token: XXXXXXXXXXXXX3s' \
  --header 'auth-key: XXXXXXXXXXXXX3s' \
  --header 'client: abc' \
  --header 'Content-Type: text/plain' \
  --data 'ABCD|123456789|MSBI0412001668|NA|00000094.00|SBI|22270726|NA|INR|NA|NA|NA|NA|29-05- 201316:08:56|0300|NA|XYZ|NA|NA|NA|NA|BoKDXlJ5j121248|NA|NA|NA|3734835005' \
  'http://localhost:3010/update-digital-payment-status'

注意事项

  • 中间件的加载顺序至关重要,express.text()必须在所有需要处理文本请求体的路由之前配置
  • 如果需要同时支持JSON和文本格式的请求体,可以同时添加express.json()和express.text()中间件

内容的提问来源于stack exchange,提问作者Aakarshit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 18:35:13