【发布时间】:2022-10-04 22:38:05
【问题描述】:
我想使用 http.MultipartRequest 添加带有文件附件的帖子。这是颤振中的代码:
Future<String> savePost({String content = '', XFile? file}) async{
String messageRes = '';
try {
final uri = Uri.parse('$urlBase/api/posts');
Map<String, String> headers= <String,String>{
'Authorization':'Bearer ${Global.user!.token}',
'content-type': 'application/json; charset=UTF-8;',
'Accept' : 'application/json',
};
Map<String, String> data = {
"content": content
};
var request = http.MultipartRequest('POST', uri)
..headers.addAll(headers)
..fields.addAll(data);
if(file != null){
request.files.add(
http.MultipartFile(
'picture',
File(file.path).readAsBytes().asStream(),
File(file.path).lengthSync(),
filename: file.name
)
);
}
var res = await request.send();
if(res.statusCode == 200){
messageRes = '200';
}else{
messageRes = '${res.statusCode} ${res.reasonPhrase}';
}
} catch (e) {
messageRes = e.toString();
}
return messageRes;
}
我使用的 Beckend 是 .Net 6:
[HttpPost]
// api/posts
public async Task<IActionResult> AddPost(CreatePostDto createDto)
{}
public class CreatePostDto
{
public string Content { get; set; }
}
我用邮递员测试了api,一切都很好。但是当使用上面的代码使用颤振时,我得到错误 415。请帮助我我哪里出错了。
【问题讨论】: