如何使用后发布网址将数据发送到Web服务

时间:2019-08-07 09:30:53

标签: react-native

我创建了react native注册页面,我想通过发布请求将数据发送到Web服务。我想对Web服务中的数据进行身份验证,可以提出建议

3 个答案:

答案 0 :(得分:0)

这是一个简单的例子:

fetch('http://justanexample.altervista.org/saveinfo.php', {

method: 'POST',
  headers: { 
           'Accept': 'application/json',
           'Content-Type': 'application/json' 
           },
  body: JSON.stringify({text: "blablabla", id_product: "12"})
})

答案 1 :(得分:0)

通过在项目中使用redux-saga和axios,您可以很好地构建代码,而无需在js文件中使用整个获取方法。

答案 2 :(得分:0)

如果您有api,则需要身份验证API来对用户进行身份验证,然后只需执行此操作...

SignInUser = async () => {
    
    this.setState({
     username: this.state.username,
     password:this.state.password,
   })

   if(this.state.username && this.state.password !== null){
    try{
      this.setState({
        loading:true
      })
      const response = await fetch('YOUR API', {
        method: 'POST',
        headers: {
          Accept: 'application/json',
          'Content-Type': 'application/json',
        },
        body: JSON.stringify({
          username: this.state.username,
          password: this.state.password
        })
      });
      var promiseResponse = await response.json()
      console.log(promiseResponse.token);
      try {
        await AsyncStorage.setItem('LoginToken', JSON.stringify(promiseResponse.token));
        console.log('Token Stored In Async Storage');
        let tokenFromAsync = await AsyncStorage.getItem('LoginToken');
        console.log('Getting Token From Async...')
        tokenFromAsync = JSON.parse(tokenFromAsync)
        if(tokenFromAsync !== null){
          console.log(tokenFromAsync);
          this.setState({
            loading:false
          })
          this.props.navigation.navigate('Tabnav');
        }
        
      } catch (error) {
        // saving error
        console.log(`ERROR OCCURED ${error}`)
      }
      //this.props.navigation.navigate('Tabnav')
     } catch(error){
       console.log(`COULDN'T SIGN IN ${error}`)
     }
   } else {
     this.setState({
       msg:'Invalid Credentials',
       label:'red'
     });
   }
   
  
   
 }