Flutter多部分请求,包含标头和其他字段



我想向我的服务器发送一个Multipart请求,如下所示:

{
"file" : some_file.jpg,
"room" : {
"roomName" : "Room Name"
}
}

我有一些标题

{
"authorisation" : "Basic header"
"screenInfo" : "screenInfo",
"operation" : "operation",
"userId" : "integer",
}

我试过http。多部分请求以及Dio包,但我无法正确发送请求

我使用过的:

  1. http.MultipartRequest

    final length = _mWebRequest.getRequestFiles()["file"].lengthSync();
    print("Length : $length");
    var request = http.MultipartRequest('POST', Uri.parse(urlString))
    ..headers.addAll(_mWebRequest.getHeaders())
    ..fields.addAll(_mWebRequest.getRequestParam())
    ..files.add(
    http.MultipartFile.fromBytes('file',
    _mWebRequest.getRequestFiles()["file"].readAsBytesSync(),
    filename: _mWebRequest
    .getRequestFiles()["file"]
    .path
    .split("/")
    .last),
    );
    
  2. Dio包

    Dio dio = new Dio();
    var formData = FormData.fromMap({
    "room": {"roomName": "Custom Room 1", "isDefault": "false"},
    "file": await MultipartFile.fromFile(
    _mWebRequest.getRequestFiles()["file"].path,
    filename:
    _mWebRequest.getRequestFiles()["file"].path.split("/").last)
    });
    dio.options.headers.addAll(_mWebRequest.getHeaders());
    var response = await dio.post(urlString, data: formData);
    

有人能帮我吗?

虽然迟到了,但你在"授权";与Z一起,授权

最新更新