通过POST请求发送的二进制数据与Flask接收的数据不匹配

时间:2019-01-25 05:42:57

标签: javascript python flask werkzeug

我正在尝试将多部分/相关POST请求中的文件发送到我的Flask应用。在JavaScript中,我按以下方式构建请求:

var XHR = new XMLHttpRequest();
var enc = new TextDecoder("ascii");
var boundary = "DICOM FILE";
var data = "";
data += "--" + boundary + "\r\n";
data += 'Content-Type: application/dicom\r\n';
data += '\r\n';
data += enc.decode(file.binary) + '\r\n';
data += "--" + boundary + "--";
XHR.open('POST', '/stowrs/studies');
XHR.setRequestHeader('Content-Type','multipart/related; type=application/dicom boundary=' + boundary);
//XHR.setRequestHeader('Content-Type','application/octet-stream');
XHR.send(data);
console.log(data.length)

它说数据长度是209。在浏览器调试器的请求正文中,我可以确认这一点。

当我在Flask中收到该请求时:

 len(request.get_data())

它表示数据的字节长度为210

请注意,当我将Content-Type设置为application / octet-stream

时,也会发生同样的情况。

这是怎么回事?在十六进制编辑器中,我可以看到文件中引入了一个字节。如果需要,我也很乐意提供该文件。

0 个答案:

没有答案