response返回结果处理直接返回response.body

This commit is contained in:
wkj 2025-04-24 19:29:32 +08:00
parent f218659bb5
commit 2f58588a8e
3 changed files with 59 additions and 36 deletions

View File

@ -36,7 +36,7 @@ export default class SimpleConnector<ED extends EntityDict & BaseEntityDict, Fro
opRecords: any;
message: string | null;
} | {
result: ArrayBuffer;
result: ReadableStream<Uint8Array> | null;
message: string | null;
opRecords?: undefined;
}>;
@ -45,7 +45,7 @@ export default class SimpleConnector<ED extends EntityDict & BaseEntityDict, Fro
opRecords: any;
message: string | null;
} | {
result: ArrayBuffer;
result: ReadableStream<Uint8Array> | null;
message: string | null;
opRecords?: undefined;
}>;

View File

@ -81,8 +81,7 @@ class SimpleConnector {
throw new types_1.OakServerProxyException(`网络请求返回status是${response.status}`);
}
const message = response.headers.get('oak-message');
const responseType = response.headers.get('Content-Type') ||
response.headers.get('content-type');
const responseType = response.headers.get('Content-Type') || response.headers.get('content-type');
if (responseType?.toLocaleLowerCase().match(/application\/json/i)) {
const { exception, result, opRecords } = await response.json();
if (exception) {
@ -94,18 +93,24 @@ class SimpleConnector {
message,
};
}
else if (responseType
?.toLocaleLowerCase()
.match(/application\/octet-stream/i)) {
const result = await response.arrayBuffer();
// else if (
// responseType
// ?.toLocaleLowerCase()
// .match(/application\/octet-stream/i)
// ) {
// const result = await response.arrayBuffer();
// return {
// result,
// message,
// };
// }
else {
const result = response.body;
return {
result,
message,
};
}
else {
throw new Error(`尚不支持的content-type类型${responseType}`);
}
}
async callAspect(name, params, context) {
const { headers, body } = await this.makeHeadersAndBody(name, params, context);
@ -153,8 +158,7 @@ class SimpleConnector {
throw new types_1.OakServerProxyException(`网络请求返回status是${response.status}`);
}
const message = response.headers.get('oak-message');
const responseType = response.headers.get('Content-Type') ||
response.headers.get('content-type');
const responseType = response.headers.get('Content-Type') || response.headers.get('content-type');
if (responseType?.toLocaleLowerCase().match(/application\/json/i)) {
const { socketUrl, subscribeUrl, path } = await response.json();
return {
@ -193,11 +197,19 @@ class SimpleConnector {
},
};
}
if (typeof result === 'object') {
return {
body: {
result,
opRecords,
},
headers: {
'oak-message': message,
},
};
}
return {
body: {
result,
opRecords,
},
body: result,
headers: {
'oak-message': message,
},

View File

@ -94,9 +94,7 @@ export default class SimpleConnector<ED extends EntityDict & BaseEntityDict, Fro
}
const message = response.headers.get('oak-message');
const responseType =
response.headers.get('Content-Type') ||
response.headers.get('content-type');
const responseType = response.headers.get('Content-Type') || response.headers.get('content-type');
if (responseType?.toLocaleLowerCase().match(/application\/json/i)) {
const { exception, result, opRecords } = await response.json();
@ -108,18 +106,24 @@ export default class SimpleConnector<ED extends EntityDict & BaseEntityDict, Fro
opRecords,
message,
};
} else if (
responseType
?.toLocaleLowerCase()
.match(/application\/octet-stream/i)
) {
const result = await response.arrayBuffer();
}
// else if (
// responseType
// ?.toLocaleLowerCase()
// .match(/application\/octet-stream/i)
// ) {
// const result = await response.arrayBuffer();
// return {
// result,
// message,
// };
// }
else {
const result = response.body;
return {
result,
message,
};
} else {
throw new Error(`尚不支持的content-type类型${responseType}`);
}
}
}
@ -177,9 +181,7 @@ export default class SimpleConnector<ED extends EntityDict & BaseEntityDict, Fro
}
const message = response.headers.get('oak-message');
const responseType =
response.headers.get('Content-Type') ||
response.headers.get('content-type');
const responseType = response.headers.get('Content-Type') || response.headers.get('content-type');
if (responseType?.toLocaleLowerCase().match(/application\/json/i)) {
const { socketUrl, subscribeUrl, path } = await response.json();
@ -228,11 +230,20 @@ export default class SimpleConnector<ED extends EntityDict & BaseEntityDict, Fro
};
}
if (typeof result === 'object') {
return {
body: {
result,
opRecords,
},
headers: {
'oak-message': message,
},
};
}
return {
body: {
result,
opRecords,
},
body: result,
headers: {
'oak-message': message,
},