使用 header 和 body 字段将多部分图像上传到服务器时出现 Flutter 格式异常?
Flutter Format Exception when uploading multipart image to server with header and body fields?
我需要使用 http 包使用 header、body 和令牌将图像上传到服务器。
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}
但是,我收到以下错误 "Error : FormatException: Unexpected end of input (at character 1)",状态代码为 307。
谁能告诉我这是什么问题?
我的 header 不匹配,因为我正在传递字段!!!
此代码在我的另一个具有多部分文件上传功能的应用程序中运行良好。
谢谢。
HTTP 状态 307 是重定向,因此服务器告诉您使用它在响应的 header 位置给您的不同 URL 再次尝试请求(即 https://api.test.me/image
).您要么需要重试请求,要么将初始请求发送到正确的端点,以便服务器不会发送重定向。
我需要使用 http 包使用 header、body 和令牌将图像上传到服务器。
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}
但是,我收到以下错误 "Error : FormatException: Unexpected end of input (at character 1)",状态代码为 307。
谁能告诉我这是什么问题?
我的 header 不匹配,因为我正在传递字段!!!
此代码在我的另一个具有多部分文件上传功能的应用程序中运行良好。
谢谢。
HTTP 状态 307 是重定向,因此服务器告诉您使用它在响应的 header 位置给您的不同 URL 再次尝试请求(即 https://api.test.me/image
).您要么需要重试请求,要么将初始请求发送到正确的端点,以便服务器不会发送重定向。