我无法在flutter中使用http请求发送空白文件。服务器给我异常'500'。我还需要发送一个参数"Filename",因为它不是可选的,否则如果文件为空,我可以跳过它。
下面是代码:
final Uri _saveTaskUrl =
Uri.parse('http://————————);
Future addNewTask(
{File image,
taskName,}) async {
// Intilize the multipart request
final imageUploadRequest = http.MultipartRequest('POST', _saveTaskUrl);
// Attach the file in the request
final mimeTypeData =
lookupMimeType(image?.path ?? '', headerBytes: [0xFF, 0xD8])
.split('/');
//Error is here
//////////////////////////////////////////////////////////
//what to do here if i want to send a blank image file
final file = await http.MultipartFile.fromPath('FileName', image?.path ?? ''
,contentType: MediaType(mimeTypeData[0], mimeTypeData[1]));
////////////////////////////////////////////////////////
imageUploadRequest.files.add( file);
imageUploadRequest.headers.addAll({
"token": centralstate.loginData["AuthToken"],
"clientid": centralstate.loginData["ClientId"].toString(),
});
imageUploadRequest.fields['taskName'] = taskName;
try {
final streamedResponse = await imageUploadRequest.send();
final response = await http.Response.fromStream(streamedResponse);
if (response.statusCode != 200) {
print(
'Error while adding new task : ${response.statusCode} : ${response.body}');
return 0;
}
print(responseData);
return 1;
} catch (e) {
return 0;
}
}
我的意思是这样的:截图来自 Postman
我知道我可以使用if语句来检查file!= null,但是我明确地想要发送一个空文件。
2条答案
按热度按时间xghobddn1#
vddsk6oq2#
要发送空白文件,可以使用以下命令
导入此
这是我的完整代码