0

这是我的代码片段

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)

你能通过建议我可能做错什么来帮助我吗? 我是否正确使用了fetchfrom BlackBerry-Dynamics-for-React-Native-Networking

React Native 版本 - 0.63.4,BB Dynamics SDK 版本 - 8.1

有时它工作正常,有时它会出错。

我在加载我的应用程序时发出 3-4 个 API 请求,有时第三个请求失败,有时第一个请求失败并且随机发生。

我在此行之前记录了 xhr - https://github.com/blackberry/BlackBerry-Dynamics-React-Native-SDK/blob/master/modules/BlackBerry-Dynamics-for-React-Native-Networking/js/fetch。 js#L483

我的一些发现告诉我我是否得到了成功的回应 -

  1. 我们获得成功响应时的 blob 大小(大约 1200)明显大于我们在相同 API、相同响应上获得错误响应(大约 50)时的大小。

  2. 当我得到一个成功的响应时,responseURL 是正确的,但是当我没有得到一个成功的响应时,responseURL 是 - “http://10.0.2.2:8081/symbolicate”。

  3. 此外,大多数情况下,我在通过 BB 授权屏幕后第一次加载我的应用程序时会收到错误消息。在我刷新我的应用程序后,它大部分时间都可以正常工作。

当我得到成功响应时的 XHR - 成功的响应 XHR

当我收到错误时 XHR - 错误

这些发现有什么帮助吗?

4

1 回答 1

0

您能否从另一个 BlackBerry Dynamics 应用程序访问私有 URL?在调用网络 API 之前,SDK 必须处于经过身份验证的状态。我建议测试您是否可以在我们的 BasicNetworkingSample 或 BlackBerry Access(如果可用)中访问 URL。

BasicNetworkingSample: https ://github.com/blackberry/BlackBerry-Dynamics-React-Native-SDK/tree/master/SampleApplications/BasicNetworking

于 2021-04-05T14:36:23.660 回答