rest - 如何使用 Dart http 库中的 StreamedRequest 上传文件?

标签 rest http file-upload dart

我想通过非multipart/form-data 请求上传文件,如下所示:

POST http://127.0.0.1/upload
Cache-Control: no-cache

< /path/to/file/in/disk

(我进行了测试,它成功地将一个文件从 JetBrain Rider 的 REST 客户端上传到了我的 REST 端点。)

有一个StreamedRequest http 包中的类,但我没有找到任何构造函数或 setter 来将字节流或文件内容插入其中。

如何使用 StreamedRequest 在 Dart 中上传文件?

最佳答案

我将发布 phqb 的解决方案以防 pastebin 链接失效:

final file = new File(filePath);

final streamedRequest =
    new http.StreamedRequest('POST', Configurations.getUserContentsApiUri('/upload'))
      ..headers.addAll({
        'Cache-Control': 'no-cache',
        'Authorization': 'Bearer $uploadToken',
      });
streamedRequest.contentLength = await file.length();
file.openRead().listen((chunk) {
  print(chunk.length);
  streamedRequest.sink.add(chunk);
}, onDone: () {
  streamedRequest.sink.close();
});

await streamedRequest.send();
print('after response');

关于rest - 如何使用 Dart http 库中的 StreamedRequest 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51195648/

相关文章:

ios - 错误代码 413 - 上传文件到服务器

xml - JAXBException 发生 : class javax. jdo.identity.LongIdentity 及其任何父类(super class)在此上下文中均未知

java - 将rest url中的请求参数转换为对象

java - 如何记录 Spring @RestController @RequestMapping 方法的所有请求和 header 信息?

java - Spring RestTemplate 字符集 UTF-8 不起作用

http - If-Modified-Since 是强验证还是弱验证?

file-upload - 如何防止 HTTP Rest Jboss resteasy Fileupload 因 'Could not find message body reader' 错误而失败?

javascript - 如何解决 C :\fakepath?

java - EntityUtils toString 在大响应上花费的时间太长

http - WebDAV 中 GET 和 PROPFIND 的区别