How to Make HTTP Requests In React Native IOS application?

前端 未结 3 2152
天命终不由人
天命终不由人 2021-02-09 11:42
fetch(\'http://119.9.52.47:3000/api/countries\', {
       method: \'POST\',
       headers: { \'Accept\': \'application/json\',\'Content-Type\': \'application/json\'},
          


        
相关标签:
3条回答
  • 2021-02-09 11:58

    you can try like this for send data to server(POST)

    let response = await fetch(
        'http://your_url', {
          method: 'POST',
          headers: {
            'Accept': 'application/json',
            'Content-Type': 'application/json',
          },
          body: JSON.stringify({
            username: this.state.name,//data which u want to send
            password: this.state.password,
          })
      });
      let responseText = await response.text();
      if (response.status >= 200 && response.status < 300){
        Alert.alert('Server response', responseText)
    
      }
      else {
        let error = responseText;
        throw error
        //Alert.alert('Login', error)
      }
    } catch(errors) {
      Alert.alert('Login', errors)
    
      Actions.Documents();
    }
    

    Edit: As latest iOS sdk enforces connection to be in https protocol instead of http.you can add an exception to your domain inside info.plist file of the Xcode project.

    if you want to allow everything write this inside 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>
    

    for more info check this out https://stackoverflow.com/a/31623388/7604342

    0 讨论(0)
  • 2021-02-09 12:02

    You can use normal fetch function, only add you http host into exception. In your XCode.

    0 讨论(0)
  • 2021-02-09 12:07

    Quoting Network docs:

    By default, iOS will block any request that's not encrypted using SSL. If you need to fetch from a cleartext URL (one that begins with http) you will first need to add an App Transport Security exception.

    Your request is http, so you need to either add the address as an App Transport Security exception in your ios app, or use https.

    0 讨论(0)
提交回复
热议问题