static Future<Map<String,dynamic>> put(String url, {data, method}) async {
data = data ?? {};
method = 'PUT';
Dio dio = createInstance();
data.forEach((key, value) {
if (url.indexOf(key) != -1) {
url = url.replaceAll(':$key', value.toString());
}
});
data.forEach((key, value) {
para = para+"${key}=${value}&";
});
para = para.substring(0,para.length-1);
print(">>>${para}");
para = encodeBase64("type=check");
// url = url+"?"+"payload=${para}";
/// 打印请求相关信息:请求地址、请求方式、请求参数
print('请求地址:【' + method + ' ' + url + '】');
print('请求参数:' + data.toString());
Map<String,String> resultpara = Map();
resultpara["payload"]= para;
var result;
try {
Response response = await dio.request(url,queryParameters:data,data: "payload=${para}",
options: new Options(method: method));
result = response.data;
/// 打印响应相关信息
print('响应数据:' + response.toString());
} on Error catch (e) {
/// 打印请求失败相关信息
print('请求出错:' + e.toString());
Fluttertoast.showToast(msg: "请求出错");
dio.reject(e);
// rethrow;
}
return result;
}
关键是url参数放在queryparameters里面,payload参数放在data里面。网上的很多都没有用,可能是我们后端实现不规范的原因吧