无法使用安全服务器(HTTPS)从Android react本机应用程序运行AXIOS获取请求

suzh9iv8  于 8个月前  发布在  iOS
关注(0)|答案(1)|浏览(104)

我一直在尝试使用AXIOS作为我的react native应用程序的一部分来运行请求。下面是我的代码片段:

const response = await axios({
                method: 'get',
                url: this.url('https://my-domain:5000/api/v1/version'),
                signal: this.newAbortSignal(5000),
                //headers: this.headers
            })

字符串
我的中止信号功能:

newAbortSignal(timeoutMs: number) {
        const abortController = new AbortController();
        setTimeout(() => abortController.abort(), timeoutMs || 0);
      
        return abortController.signal;
    }


该域是可信的CA和验证,所以https请求应该工作.我也尝试从设备手动去该端点,它从浏览器工作得很好.我已经定义了没有标题的目的,以排除cors问题.我收到一个ERR_NETWORK状态代码从AXIOS.在服务器端,我甚至没有收到任何传入的请求,就像它从来没有离开手机.
我在物理设备上的调试模式和同一设备上的签名APK发布版本上都尝试了这种方法,但两者都不起作用。
另一个尝试,我尝试只是运行一个获取请求'https:google.com',它失败了与ERR_CANCELLED,我不知道这意味着什么。
顺便说一句,我也试过节点提取,它没有工作,以及.我真的很感激一些帮助:/

yi0zb3m4

yi0zb3m41#

我有两个问题,阻止我的代码工作。
第一个问题是,我错误地签署了我的快递服务器。当签署您的快递服务器,请确保您使用您的密钥,crt,和ca-bundle文件。

const privateKey  = fs.readFileSync('sslcert/server.key', 'utf8');
const certificate = fs.readFileSync('sslcert/server.crt', 'utf8');
const ca = fs.readFileSync('sslcert/ca.ca-bundle', 'utf8');
const credentials: https.ServerOptions = {key: privateKey, cert: certificate, ca: ca};
https
    .createServer(credentials, app)
    ...
    ...

字符串
我的第二个问题是我使用Axios的方式,这阻止了它的工作。出于某种原因,创建一个Axios客户端,然后使用它如下:

const client = new Axios(..)
await client.get(....)


它返回了一些奇怪的行为,抛出了一些无法解释的Android异常,关于Double不能为null。
当我开始使用:

const response = await axios({
  method: 'get',
  url: '...',
  ...
})


它工作正常。

相关问题