gpt4 book ai didi

javascript - 接收和解释内容类型为应用程序/八位字节流的十六进制数据发送时出错

转载 作者:行者123 更新时间:2023-11-30 16:33:37 24 4
gpt4 key购买 nike

我正在尝试将二进制数据发送到 azure 移动服务 API。当我们收到请求并尝试解析数据时,高于 7f 的字节值(即 80、81、90、ff 等)会被不同地解释。例如,如果我们发送了

Sent data    : 67 01 00 00 31 00 31 00 32 00 31 00 00 00 A0 10
Received data: 67 01 00 00 31 00 31 00 32 00 31 00 00 00 ef bf bd 10

这是 curl 命令:

curl --header "Content-Type:application/octet-stream"   -X POST https://x.x.x.x/Api/temp --data-binary @/home/device_data.txt

Nodejs 移动服务脚本片段

exports.post = function(request, response) {

var payload=new Buffer(request.body);
console.log(payload);
}

我怀疑我们的 8 位二进制流被解释为 7 位字符流。有人可以解释一下吗?

最佳答案

request.body 来自 ExpressJS - 在这里阅读:http://expressjs.com/4x/api.html#req.body

你会注意到 request.body 不是请求的主体——它是一个解析的主体。因此,您可能需要显式使用 body-parser 来处理请求。

这里是同一事物的另一个例子:nodejs/express and binary data in POST

同时检查正文解析器:https://github.com/expressjs/body-parser#bodyparserrawoptions

不幸的是,我认为您不能在移动服务案例中设置额外的中间件。你可以做的一件事是将你的应用程序转换到 Azure App Service 移动应用程序——它采用常规的 ExpressJS 应用程序,但通过 SDK 处理身份验证、推送通知和数据访问(参见 https://github.com/Azure/azure-mobile-apps-node 和介绍性博客文章:https://azure.microsoft.com/en-us/blog/announcing-node-for-azure-mobile-apps/)

关于javascript - 接收和解释内容类型为应用程序/八位字节流的十六进制数据发送时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32994768/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com