反应原生iOS网络请求失败-代理设置问题

时间:2019-09-17 08:23:32

标签: ios react-native

我尝试通过获取请求连接并在api中获得响应。网络请求失败错误已引发。

我的请求是一个https请求。

我在网络偏好设置和bash_profile中都有代理设置

Xcode信息plist具有NSAllowsArbitraryLoads属性。

postman中得到了JSON响应,但是通过RN代码,请求失败了

我可以与其他后端服务器连接并获得响应。但是仅对于此base_url,网络请求失败。

var form = new FormData();
form.append("username", usernameValue);
form.append("password", encryptedPassword.toString());

return fetch(oAuthUrl, {
    method: 'POST',
    headers: {
        'Content-Type': 'multipart/form-data',
        'Authorization' : authroizationHeaderField, //basic auth
    },
    body:form
})
.then(response => checkStatus(response))
.then(async (response) => {

    let responseJson = await response.json()
    return responseJson;
})
.catch(error => {
    console.log(error); //here error occurred
});

任何人都可以帮助或指导我解决它。.也欢迎提出建议。

1 个答案:

答案 0 :(得分:0)

我已在以下文件中添加了该方法。它允许任何具有自签名证书的服务器。

  

RCTHTTPRequestHandler.mm

    - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential *credential))completionHandler
{
  completionHandler(NSURLSessionAuthChallengeUseCredential, [NSURLCredential credentialForTrust:challenge.protectionSpace.serverTrust]);
}

现在网络故障问题已解决。