问题描述
这是我的代码片段
import { fetch } from 'blackberry-dynamics-for-React-Native-Networking';
async componentDidMount() {
try {
let res = await fetch('http://my-private-url.com',{
method : 'GET',headers : {}
});
let response = await res.text();
// let response = await res.json(); // tried this method as well,getting same behavIoUr
} catch (error) {
console.log('errr-----',error);
}
}
我有时会收到以下错误,有时它可以正常工作(注意 - 在相同的 API 上,相同的响应):-
Error: The specified blob is invalid
at Object.promiseMethodWrapper [as readAsText] (D:\PE-Code\rester\ds\node_modules\react-native\Libraries\BatchedBridge\NativeModules.js:103)
at EventTarget.readAsText (D:\PE-Code\rester\ds\node_modules\blackberry-dynamics-for-React-Native-Networking\js\FileReader.js:118)
at readBlobAsText (D:\PE-Code\rester\ds\node_modules\blackberry-dynamics-for-React-Native-Networking\js\fetch.js:206)
at Response.Body.text (D:\PE-Code\rester\ds\node_modules\blackberry-dynamics-for-React-Native-Networking\js\fetch.js:300)
at RootDashboard.componentDidMount$ (D:\PE-Code\rester\ds\src\components\dashboards\RootDashboard.js:48)
at tryCatch (D:\PE-Code\rester\ds\node_modules\regenerator-runtime\runtime.js:63)
at Generator.invoke [as _invoke] (D:\PE-Code\rester\ds\node_modules\regenerator-runtime\runtime.js:293)
at Generator.next (D:\PE-Code\rester\ds\node_modules\regenerator-runtime\runtime.js:118)
at tryCatch (D:\PE-Code\rester\ds\node_modules\regenerator-runtime\runtime.js:63)
at invoke (D:\PE-Code\rester\ds\node_modules\regenerator-runtime\runtime.js:154)
你能帮我指出我可能做错了什么吗?
我是否正确使用了 fetch
中的 blackberry-dynamics-for-React-Native-Networking
?
React 原生版本 - 0.63.4, BB 动态 SDK 版本 - 8.1
有时工作正常,有时会出错。
我在加载应用程序时发出 3-4 个 API 请求,有时第 3 个请求失败,有时第 1 个请求失败并随机发生这种情况。
我的一些发现告诉我我是否得到了成功的回应 -
-
在相同 API、相同响应上,我们获得成功响应时的 blob 大小(大约 1200)明显大于我们获得错误响应时(大约 50)。
-
当我收到成功响应时,responseURL 是正确的,但是当我没有得到成功响应时,responseURL 是 - "http://10.0.2.2:8081/symbolicate"。
-
此外,大多数情况下,我在通过 BB 授权屏幕后第一次加载我的应用时会收到错误消息。在我刷新应用后,大多数情况下它都能正常工作。
XHR 当我收到成功回复时 - Successful Response XHR
这些发现有什么帮助吗?
解决方法
您是否能够从另一个 BlackBerry Dynamics 应用程序访问私有 URL?在调用网络 API 之前,SDK 必须处于经过身份验证的状态。我建议测试您是否可以在我们的 BasicNetworkingSample 或 BlackBerry Access(如果可用)中访问该 URL。