将带标题和正文字段的多部分图像上传到服务器时,Flutter格式异常?

问题描述 投票:0回答:1

我需要使用http包将带有标头,正文和令牌的图像上传到服务器。

http.MultipartRequest imageUploadRequest = http.MultipartRequest('POST', Uri.parse(BASE_URL));

imageUploadRequest.headers["Authorization"] = "bearer ${token}";
imageUploadRequest.fields['FileName'] = "Test";

final file = await http.MultipartFile.fromPath('file', image.path);
imageUploadRequest.files.add(file);

final streamedResponse = await imageUploadRequest.send();
print("streamedResponse.statusCode : ${streamedResponse.statusCode}");
// Log-> streamedResponse.statusCode : 307

print("streamedResponse.headers : ${streamedResponse.headers}");
// Log-> streamedResponse.headers : streamedResponse.headers : {x-powered-by: ASP.NET, location: https://api.test.me/image, date: Sat, 23 Nov 2019 05:01:48 GMT, transfer-encoding: chunked, server: Microsoft-IIS/10.0}

final MapString, dynamic responseData = json.decode(response.body);
print("statusCode : ${response.statusCode}");
// Log-> statusCode : 307

print("headers : ${response.headers}");
// Log-> headers : streamedResponse.headers : {x-powered-by: ASP.NET, location: https://api.test.me/image, date: Sat, 23 Nov 2019 05:01:48 GMT, transfer-encoding: chunked, server: Microsoft-IIS/10.0}

但是,我收到以下错误“错误:FormatException:输入的意外结束(在字符1)”,状态码为307。

谁能告诉我这是什么问题吗?

我的标题与我传递的字段不匹配!!

此代码在我的另一个具有分段文件上传功能的应用程序中正常工作。

谢谢。

android android-studio flutter http-post multipart
1个回答
0
投票

HTTP状态307是重定向,因此服务器告诉您使用在响应的位置标头(即https://api.test.me/image)中提供的不同URL再次尝试该请求。您要么需要重试该请求,要么将初始请求发送到正确的端点,以便服务器不发送重定向。

© www.soinside.com 2019 - 2024. All rights reserved.