DART使用multipart/form-data提交POST请求

4
在DART语言中,如何指定POST请求的Content-Type为
multipart/form-data

我的DART代码如下:

sendDatas(dynamic data) {
final req = new HttpRequest();
req.onReadyStateChange.listen((Event e) {
  if (req.readyState == HttpRequest.DONE &&
      (req.status == 200 || req.status == 0)) {
    window.alert("upload complete");
  }
});
req.open("POST", "/upload");
req.send(data);

我正在使用文件进行POST请求

2个回答

2
我认为你应该在这里使用 HttpRequest.postFormData(url, data)。然后,您可以使用以下内容:
FormData data = new FormData(); // from dart:html

data.append(key, value);

HttpRequest.request('/upload', method: 'POST', sendData: data).then((HttpRequest r) {
  // ...
});

敬礼,罗伯特


当我在终端中制作控制台“err”时,为什么会出现“Content-Type中没有多部分边界参数”的情况?/// 我仍在使用我的代码。 - bboy
你能展示完整的代码吗?我的代码应该可以工作。 - Robert
当我添加你的代码时,会得到类似这样的错误:参数类型 'FormData (/Users/MyUserName/Downloads/dart/dart-sdk/lib/html/dartium/ html_dartium.dart)' 无法赋值给参数类型 'Map (/Users/MyUserName/Downloads/ dart/dart-sdk/lib/core/map.dart)' - bboy
在你的代码中,你使用 keyvalue 分别代表什么? - bboy
让我们在聊天中继续这个讨论。点击此处进入聊天室 - bboy
显示剩余4条评论

0
在服务器上,它由http package支持。这个package也可以在浏览器中使用,但是似乎multipart_request.dart文件不能被导入到浏览器中,因为它使用了dart:io
我建议在http://dartbug.com/new上创建一个功能请求。
你也可以尝试从[http] package复制代码,并删除对io package的引用,改用浏览器API。
如何在服务器上使用它,在这里显示http://www.dartdocs.org/documentation/http/0.11.1+1/index.html#http/http.MultipartRequest

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接