提交 2d8a2bd9 编写于 作者: inkwalk's avatar inkwalk

add: App 平台支持cookie

上级 f82423ac
......@@ -50,7 +50,8 @@ onMethod('onRequestTaskStateChange', function ({
data,
statusCode,
header,
errMsg
errMsg,
cookies
}) {
const {
args,
......@@ -67,7 +68,8 @@ onMethod('onRequestTaskStateChange', function ({
data,
statusCode,
header,
errMsg: 'request:ok'
errMsg: 'request:ok',
cookies
}, args))
break
case 'fail':
......@@ -99,16 +101,16 @@ class RequestTask {
}
}
export function request (args, callbackId) {
let contentType
for (const name in args.header) {
if (name.toLowerCase() === 'content-type') {
contentType = args.header[name]
break
}
}
if (args.method !== 'GET' && contentType.indexOf('application/json') === 0 && isPlainObject(args.data)) {
args.data = JSON.stringify(args.data)
export function request (args, callbackId) {
let contentType
for (const name in args.header) {
if (name.toLowerCase() === 'content-type') {
contentType = args.header[name]
break
}
}
if (args.method !== 'GET' && contentType.indexOf('application/json') === 0 && isPlainObject(args.data)) {
args.data = JSON.stringify(args.data)
}
const {
requestTaskId
......@@ -120,4 +122,4 @@ export function request (args, callbackId) {
}
return new RequestTask(requestTaskId)
}
}
......@@ -16,13 +16,35 @@ const publishStateChange = res => {
delete requestTasks[requestTaskId]
}
const cookiesPrase = header => {
let cookiesStr = header["Set-Cookie"]
let cookiesArr = [];
if (!cookiesStr) {
return [];
}
if (cookiesStr[0] === '[' && cookiesStr[cookiesStr.length - 1] === ']') {
cookiesStr = cookiesStr.slice(1, -1);
}
let handleCookiesArr = cookiesStr.split(";");
for (let i=0; i<handleCookiesArr.length; i++) {
if (handleCookiesArr[i].indexOf('Expires=') !== -1) {
cookiesArr.push(handleCookiesArr[i].replace(',', ''))
} else {
cookiesArr.push(handleCookiesArr[i])
}
}
cookiesArr = cookiesArr.join(";").split(',');
return cookiesArr;
}
export function createRequestTaskById (requestTaskId, {
url,
data,
header,
method = 'GET',
responseType,
sslVerify = true,
sslVerify = true,
firstIpv4 = false
} = {}) {
const stream = requireNativePlugin('stream')
......@@ -76,7 +98,7 @@ export function createRequestTaskById (requestTaskId, {
// weex 官方文档未说明实际支持 timeout,单位:ms
timeout: timeout || 6e5,
// 配置和weex模块内相反
sslVerify: !sslVerify,
sslVerify: !sslVerify,
firstIpv4: firstIpv4
}
if (method !== 'GET') {
......@@ -102,7 +124,8 @@ export function createRequestTaskById (requestTaskId, {
state: 'success',
data: ok && responseType === 'arraybuffer' ? base64ToArrayBuffer(data) : data,
statusCode,
header: headers
header: headers,
cookies: cookiesPrase(headers)
})
} else {
publishStateChange({
......@@ -157,4 +180,4 @@ export function operateRequestTask ({
return {
errMsg: 'operateRequestTask:fail'
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册