Future<String> upload_to_server(File image) async {
var file;
String str;
String filename = image.path.split('/').last;
FormData formData = new FormData();
file = await MultipartFile.fromFile(image.path,
filename: filename, contentType: MediaType('image', 'jpeg'));
formData.files.add(MapEntry('photo', file));
Response response =
await Dio().post("http://10.0.2.2:5000/", data: formData);
if (response.statusCode == 200) str = jsonDecode(response.data.toString());
print(str);
return str;
}
这个函数返回一个空字符串,但是当我打印字符串的值时,我会得到一个非空字符串输出。我认为问题可能出在json解码上。有人能帮我弄清楚吗?
使用dio,您不必使用jsonDecode,response.data应该会为您提供字符串。
str = response.data;
出现问题是因为您试图解码response.data
Future<String> upload_to_server(File image) async {
var file;
String str;
String filename = image.path.split('/').last;
FormData formData = new FormData();
file = await MultipartFile.fromFile(image.path,
filename: filename, contentType: MediaType('image', 'jpeg'));
formData.files.add(MapEntry('photo', file));
Response response =
await Dio().post("http://10.0.2.2:5000/", data: formData);
if (response.statusCode == 200) {
str = response.data.toString();
print(str);
return str;
}else{
throw Expression('Failed to Load Response');
}
如果您想解码,请尝试以下方式:
dynamic str = jsonDecode(jsonEncode(response.data));
希望这件作品的
您可以尝试:
var data = json.decode(json.encode(response.data));