You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
66 lines
1.7 KiB
66 lines
1.7 KiB
export default class{
|
|
cookies = ""
|
|
constructor(){
|
|
|
|
}
|
|
processCookies(cookies){
|
|
if(cookies.constructor==String)
|
|
cookies = cookies.split(/,\s?(?=[^=,;]+=)/g);
|
|
cookies = this.cookies = cookies.map(item => item.split(";")[0]).join(";");
|
|
return cookies;
|
|
}
|
|
request({url, data, header, method, dataType, responseType, success, fail, complete}) {
|
|
console.debug("wx.requests arguments", arguments[0], new Date().getTime());
|
|
return wx.request({
|
|
url,
|
|
data,
|
|
header: {...header, "Cookie": this.cookies},
|
|
method,
|
|
dataType,
|
|
responseType,
|
|
success: (res) => {
|
|
if (res.cookies && res.cookies.length)
|
|
this.processCookies(res.cookies);
|
|
else if (res.header["Set-Cookie"])
|
|
this.processCookies(res.header["Set-Cookie"]);
|
|
else if(res.header["set-cookie"])
|
|
this.processCookies(res.header["set-Cookie"]);
|
|
success(res);
|
|
},
|
|
fail: fail,
|
|
complete: complete
|
|
});
|
|
}
|
|
uploadFile({url, filePath, name, header, formData, success, fail, complete}){
|
|
return wx.uploadFile({
|
|
url,
|
|
filePath,
|
|
name,
|
|
header: {"Cookie": this.cookies, ...header},
|
|
formData,
|
|
success:res=>{
|
|
try{
|
|
res.data = JSON.parse(res.data);
|
|
}catch(e){
|
|
//@todo
|
|
}
|
|
console.log("uploadFile",res);
|
|
if(success)
|
|
success(res)
|
|
},
|
|
fail,
|
|
complete
|
|
})
|
|
}
|
|
downloadFile({url, header, filePath, success, fail, complete}){
|
|
return wx.downloadFile({
|
|
url,
|
|
header: {...header, "Cookie": this.cookies},
|
|
filePath,
|
|
success,
|
|
fail,
|
|
complete
|
|
})
|
|
}
|
|
}
|