api get请求失败,但是发布,放置,删除工作

时间:2018-11-23 08:47:58

标签: ios api express react-native axios

环境和设置:

  • 本机0.57
  • 用于服务器的expressjs
  • 使用axios进行api请求
  • 设置超时时间10000ms
  • 请求是带有用户名和其他少量信息的json数据
  • http请求(不是https)

我正在开发一个小的React本机项目,现在遇到“ api GET request”问题。

这对于POST,PUT,DELETE操作都是完美的选择,但是只有GET请求会返回超时错误,并带有“ BadRequestError:请求被拒绝”服务器日志。

在android上使用相同的代码也可以,但是只能在ios上使用。

我已将NSAllowsArbitraryLoads设置为true,还将NSExceptionDomains设置为以防万一,但它们均不能解决问题。

3 个答案:

答案 0 :(得分:0)

最新的iOS sdk强制使用 https 协议而不是http连接。

您可以在Xcode项目的info.plist文件中的域中添加例外。

如果您想让所有内容都写在 info.plist

<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
    <key>yourdomain.com</key>
    <dict>
        <!--Include to allow subdomains-->
        <key>NSIncludesSubdomains</key>
        <true/>
        <!--Include to allow HTTP requests-->
        <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key>
        <true/>
        <!--Include to specify minimum TLS version-->
        <key>NSTemporaryExceptionMinimumTLSVersion</key>
        <string>TLSv1.1</string>
    </dict>
 </dict>
</dict>

答案 1 :(得分:0)

步骤:

  1. 在xcode中打开您的项目。
  2. 右键单击 info.plist
  3. 选择打开方式源代码。
  4. </dict>标记的末尾添加以下代码。

<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <true/>
</dict>

答案 2 :(得分:0)

好,找到解决方法了。

这是因为发送“ GET”请求时主体上有一个空对象。 检查它是否为空并使其不确定,即可解决问题。