如何用 Dio 发送 FormData?
How to send FormData with Dio?
您好,我正在使用 Dio 发送 FormData,但是在发送时,网站 returns 出现错误
var formData = FormData.fromMap({
"ctl00$ScriptManager1": "ctl00$UpdatePanel1",
"__EVENTTARGET" :"ctl00$cphPage$productsControl",
"__EVENTARGUMENT" : "",
"__LASTFOCUS" : "",
"PageLoadedHiddenTxtBox" : "Set",
"Language" : "es-MX",
"CurrentLanguage" : "es-MX",
"Currency" : "",
"__VIEWSTATE" :"/sadasd.....",
"__VIEWSTATEGENERATOR" : "C0E71A90",
"ctl00$txtSearch" : "",
"ctl00$cphPage$productsControl$TopTools$cbxSortType" : "",
"ctl00$cphPage$productsControl$TopTools$cbxPageSize" : "-1",
"ctl00$taxes$listCountries" : "54",
"__ASYNCPOST" : "true",
" " : ""
});
var dio = Dio();
dio.interceptors.add(InterceptorsWrapper(onRequest: (RequestOptions options) async {
var customHeaders = {
'content-type': 'text/html; charset=utf-8',
'application':'x-www-form-urlencoded',
'Cookie': 'uid=rBQBc2CisZdxWU5XBBmMAg==; ASP.NET_SessionId=tedc4xrih1hk1ykbdzlakuvb; ASPNET_Session=client=BLUR; ShopMSAuth=0102A9A3B88FC919D908FEA90B7DF1D119D908000442004C005500520000012F00FF'
// other headers
};
options.headers.addAll(customHeaders);
return options;
}));
Response response = await dio.post(url, data: formData, options: Options(
contentType: 'text/html; charset=utf-8',
followRedirects: true
));
print(response.data);
当我通过浏览器查看请求时,最后的请求有参数:
__ASYNCPOST :true
:""
表格这样可以吗?
你可以沿着这条路走
var formData = FormData.fromMap({
'name': 'wendux',
'age': 25,
'file': await MultipartFile.fromFile('./text.txt',filename: 'upload.txt')
});
response = await dio.post('/info', data: formData);
您好,我正在使用 Dio 发送 FormData,但是在发送时,网站 returns 出现错误
var formData = FormData.fromMap({
"ctl00$ScriptManager1": "ctl00$UpdatePanel1",
"__EVENTTARGET" :"ctl00$cphPage$productsControl",
"__EVENTARGUMENT" : "",
"__LASTFOCUS" : "",
"PageLoadedHiddenTxtBox" : "Set",
"Language" : "es-MX",
"CurrentLanguage" : "es-MX",
"Currency" : "",
"__VIEWSTATE" :"/sadasd.....",
"__VIEWSTATEGENERATOR" : "C0E71A90",
"ctl00$txtSearch" : "",
"ctl00$cphPage$productsControl$TopTools$cbxSortType" : "",
"ctl00$cphPage$productsControl$TopTools$cbxPageSize" : "-1",
"ctl00$taxes$listCountries" : "54",
"__ASYNCPOST" : "true",
" " : ""
});
var dio = Dio();
dio.interceptors.add(InterceptorsWrapper(onRequest: (RequestOptions options) async {
var customHeaders = {
'content-type': 'text/html; charset=utf-8',
'application':'x-www-form-urlencoded',
'Cookie': 'uid=rBQBc2CisZdxWU5XBBmMAg==; ASP.NET_SessionId=tedc4xrih1hk1ykbdzlakuvb; ASPNET_Session=client=BLUR; ShopMSAuth=0102A9A3B88FC919D908FEA90B7DF1D119D908000442004C005500520000012F00FF'
// other headers
};
options.headers.addAll(customHeaders);
return options;
}));
Response response = await dio.post(url, data: formData, options: Options(
contentType: 'text/html; charset=utf-8',
followRedirects: true
));
print(response.data);
当我通过浏览器查看请求时,最后的请求有参数:
__ASYNCPOST :true
:""
表格这样可以吗?
你可以沿着这条路走
var formData = FormData.fromMap({
'name': 'wendux',
'age': 25,
'file': await MultipartFile.fromFile('./text.txt',filename: 'upload.txt')
});
response = await dio.post('/info', data: formData);