我正在尝试将多部分/相关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
时,也会发生同样的情况。这是怎么回事?在十六进制编辑器中,我可以看到文件中引入了一个字节。如果需要,我也很乐意提供该文件。