提交 2b96c634 编写于 作者: Q qiang

feat(App): request with ArrayBuffer

上级 470056cd
...@@ -7543,46 +7543,59 @@ var serviceContext = (function () { ...@@ -7543,46 +7543,59 @@ var serviceContext = (function () {
firstIpv4: firstIpv4, firstIpv4: firstIpv4,
tls tls
}; };
let withArrayBuffer;
if (method !== 'GET') { if (method !== 'GET') {
options.body = typeof data === 'string' ? data : JSON.stringify(data); if (toString.call(data) === '[object ArrayBuffer]') {
withArrayBuffer = true;
} else {
options.body = typeof data === 'string' ? data : JSON.stringify(data);
}
} }
try { const callback = ({
stream.fetch(options, ({ ok,
ok, status,
status, data,
data, headers,
headers, errorMsg
errorMsg }) => {
}) => { if (aborted) {
if (aborted) { return
return }
} if (abortTimeout) {
if (abortTimeout) { clearTimeout(abortTimeout);
clearTimeout(abortTimeout); }
} const statusCode = status;
const statusCode = status; if (statusCode > 0) {
if (statusCode > 0) { publishStateChange$1({
publishStateChange$1({ requestTaskId,
requestTaskId, state: 'success',
state: 'success', data: ok && responseType === 'arraybuffer' ? base64ToArrayBuffer$2(data) : data,
data: ok && responseType === 'arraybuffer' ? base64ToArrayBuffer$2(data) : data, statusCode,
statusCode, header: headers,
header: headers, cookies: cookiesParse(headers)
cookies: cookiesParse(headers) });
}); } else {
} else { let errMsg = 'abort statusCode:' + statusCode;
let errMsg = 'abort statusCode:' + statusCode; if (errorMsg) {
if (errorMsg) { errMsg = errMsg + ' ' + errorMsg;
errMsg = errMsg + ' ' + errorMsg;
}
publishStateChange$1({
requestTaskId,
state: 'fail',
statusCode,
errMsg
});
} }
}); publishStateChange$1({
requestTaskId,
state: 'fail',
statusCode,
errMsg
});
}
};
try {
if (withArrayBuffer) {
stream.fetchWithArrayBuffer({
'@type': 'binary',
base64: arrayBufferToBase64$2(data)
}, options, callback);
} else {
stream.fetch(options, callback);
}
requestTasks[requestTaskId] = { requestTasks[requestTaskId] = {
abort () { abort () {
aborted = true; aborted = true;
...@@ -15794,7 +15807,7 @@ var serviceContext = (function () { ...@@ -15794,7 +15807,7 @@ var serviceContext = (function () {
var zstream = ZStream; var zstream = ZStream;
var toString = Object.prototype.toString; var toString$1 = Object.prototype.toString;
/* Public constants ==========================================================*/ /* Public constants ==========================================================*/
/* ===========================================================================*/ /* ===========================================================================*/
...@@ -15958,7 +15971,7 @@ var serviceContext = (function () { ...@@ -15958,7 +15971,7 @@ var serviceContext = (function () {
if (typeof opt.dictionary === 'string') { if (typeof opt.dictionary === 'string') {
// If we need to compress text, change encoding to utf8. // If we need to compress text, change encoding to utf8.
dict = strings.string2buf(opt.dictionary); dict = strings.string2buf(opt.dictionary);
} else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') { } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {
dict = new Uint8Array(opt.dictionary); dict = new Uint8Array(opt.dictionary);
} else { } else {
dict = opt.dictionary; dict = opt.dictionary;
...@@ -16016,7 +16029,7 @@ var serviceContext = (function () { ...@@ -16016,7 +16029,7 @@ var serviceContext = (function () {
if (typeof data === 'string') { if (typeof data === 'string') {
// If we need to compress text, change encoding to utf8. // If we need to compress text, change encoding to utf8.
strm.input = strings.string2buf(data); strm.input = strings.string2buf(data);
} else if (toString.call(data) === '[object ArrayBuffer]') { } else if (toString$1.call(data) === '[object ArrayBuffer]') {
strm.input = new Uint8Array(data); strm.input = new Uint8Array(data);
} else { } else {
strm.input = data; strm.input = data;
...@@ -18568,7 +18581,7 @@ var serviceContext = (function () { ...@@ -18568,7 +18581,7 @@ var serviceContext = (function () {
var gzheader = GZheader; var gzheader = GZheader;
var toString$1 = Object.prototype.toString; var toString$2 = Object.prototype.toString;
/** /**
* class Inflate * class Inflate
...@@ -18709,7 +18722,7 @@ var serviceContext = (function () { ...@@ -18709,7 +18722,7 @@ var serviceContext = (function () {
// Convert data if needed // Convert data if needed
if (typeof opt.dictionary === 'string') { if (typeof opt.dictionary === 'string') {
opt.dictionary = strings.string2buf(opt.dictionary); opt.dictionary = strings.string2buf(opt.dictionary);
} else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') { } else if (toString$2.call(opt.dictionary) === '[object ArrayBuffer]') {
opt.dictionary = new Uint8Array(opt.dictionary); opt.dictionary = new Uint8Array(opt.dictionary);
} }
if (opt.raw) { //In raw mode we need to set the dictionary early if (opt.raw) { //In raw mode we need to set the dictionary early
...@@ -18767,7 +18780,7 @@ var serviceContext = (function () { ...@@ -18767,7 +18780,7 @@ var serviceContext = (function () {
if (typeof data === 'string') { if (typeof data === 'string') {
// Only binary strings can be decompressed on practice // Only binary strings can be decompressed on practice
strm.input = strings.binstring2buf(data); strm.input = strings.binstring2buf(data);
} else if (toString$1.call(data) === '[object ArrayBuffer]') { } else if (toString$2.call(data) === '[object ArrayBuffer]') {
strm.input = new Uint8Array(data); strm.input = new Uint8Array(data);
} else { } else {
strm.input = data; strm.input = data;
......
...@@ -5,7 +5,8 @@ import { ...@@ -5,7 +5,8 @@ import {
import { import {
publish, publish,
requireNativePlugin, requireNativePlugin,
base64ToArrayBuffer base64ToArrayBuffer,
arrayBufferToBase64
} from '../../bridge' } from '../../bridge'
import { import {
...@@ -107,46 +108,59 @@ export function createRequestTaskById (requestTaskId, { ...@@ -107,46 +108,59 @@ export function createRequestTaskById (requestTaskId, {
firstIpv4: firstIpv4, firstIpv4: firstIpv4,
tls tls
} }
let withArrayBuffer
if (method !== 'GET') { if (method !== 'GET') {
options.body = typeof data === 'string' ? data : JSON.stringify(data) if (toString.call(data) === '[object ArrayBuffer]') {
withArrayBuffer = true
} else {
options.body = typeof data === 'string' ? data : JSON.stringify(data)
}
} }
try { const callback = ({
stream.fetch(options, ({ ok,
ok, status,
status, data,
data, headers,
headers, errorMsg
errorMsg }) => {
}) => { if (aborted) {
if (aborted) { return
return }
} if (abortTimeout) {
if (abortTimeout) { clearTimeout(abortTimeout)
clearTimeout(abortTimeout) }
} const statusCode = status
const statusCode = status if (statusCode > 0) {
if (statusCode > 0) { publishStateChange({
publishStateChange({ requestTaskId,
requestTaskId, state: 'success',
state: 'success', data: ok && responseType === 'arraybuffer' ? base64ToArrayBuffer(data) : data,
data: ok && responseType === 'arraybuffer' ? base64ToArrayBuffer(data) : data, statusCode,
statusCode, header: headers,
header: headers, cookies: cookiesParse(headers)
cookies: cookiesParse(headers) })
}) } else {
} else { let errMsg = 'abort statusCode:' + statusCode
let errMsg = 'abort statusCode:' + statusCode if (errorMsg) {
if (errorMsg) { errMsg = errMsg + ' ' + errorMsg
errMsg = errMsg + ' ' + errorMsg
}
publishStateChange({
requestTaskId,
state: 'fail',
statusCode,
errMsg
})
} }
}) publishStateChange({
requestTaskId,
state: 'fail',
statusCode,
errMsg
})
}
}
try {
if (withArrayBuffer) {
stream.fetchWithArrayBuffer({
'@type': 'binary',
base64: arrayBufferToBase64(data)
}, options, callback)
} else {
stream.fetch(options, callback)
}
requestTasks[requestTaskId] = { requestTasks[requestTaskId] = {
abort () { abort () {
aborted = true aborted = true
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册