当前位置: 首页 > 知识库问答 >
问题:

当内容类型为应用程序/八位流时,重新获得request.body

舒阳州
2023-03-14

有人知道为什么将内容类型设置为application/octet stream,然后在restify中未定义请求主体吗?

这是我的密码

var restify = require('restify');
var server = restify.createServer({});

server.use(restify.bodyParser({ }));

server.post('/test', function(req, res, next){
    console.log(req.body);
});

server.listen(8090, function() {});

HTTP请求

POST /test 
Content-Type: text/plain

hello

控制台打印:您好

POST /test 
Content-Type: image/png

hello

控制台打印:

POST /test 
Content-Type: application/octet-stream

hello

控制台打印:未定义

共有1个答案

宦子琪
2023-03-14

从我在restify中看到的情况来看,这是因为bodyParser只期望内容类型:application/json从https://github.com/restify/node-restify/blob/master/lib/plugins/json_body_parser.js#L28

if (req.getContentType() !== 'application/json' || !req.body) {
  next();
  return;
}

所以需要。身体永远不会被分配。。。

 类似资料:
  • 我有一个第三方服务,它用文件向我的Django应用程序发出POST请求。要成功上传到Django应用程序,请求必须具有“多部分/表单数据”内容类型,但在我的案例和请求中,内容类型是“八位流”。文件总是空的。我怎么能在Django中接收八位流内容类型的文件?

  • 在我的应用程序中,我从一个API响应接收一个文件,该响应的是。 我试图返回这个文件到前端作为

  • 我正在处理一个API的一部分,它需要调用另一个外部API来检索它的一个函数的数据。调用返回HTTP 500错误,描述为“不支持内容类型‘应用程序/八位字节流’。”该调用应返回“application/json”类型。" 我发现这是因为接收到的响应没有在其头中显式指定内容类型,即使其内容的格式为JSON,所以我的API默认假定它是一个八位字节流。 问题是,我不知道如何适应这种情况。即使另一个API没

  • 最近我为下载创建了一个子域,我希望浏览器下载文件,而不是查看文件。为此,我在文件: 在Firefox和GoogleChrome上,它可以正常工作,但微软浏览器-Internet Explorer和微软Edge都忽略了MIME类型,而是查看它们。我怎样才能强迫他们也下载这些文件呢?

  • 我写一个服务器端应用程序与嵌入jetty接收一些请求从第三方客户端。客户端将一些小文件上传到服务器。但是我很惊讶地看到,客户端并没有上传文件数据作为应用程序/八位流,而是上传了一个json作为应用程序/json,其中包括文件的所有元数据,并在一个字段中将所有数据作为字符串 {“_id”:“水果”,“名称”:“水果”,“_shasum”:“4954f1f8b4a8cbf9ea6b675face476

  • 我试图在我的Restful Spring Boot应用程序中实现pdf文件上传。 问题是,是我的Spring Controller方法出了问题,还是postman没有正确构建请求? 如果邮递员不能获得正确的内容类型,我能期望实际的客户端应用程序正确地将内容类型设置为PDF吗?