Olá bom dia! A API remota da alura usada no curso de react native parte 2 na aula 'Enviando dados de autenticação do usuário' com url: https://instalura-api.herokuapp.com/api/public/login que usa método POST com parametros dos inputs: {login:"rafael",senha:"123456"} após ser enviado deveria retornar um token como mostrado nesta aula, mas isso não acontece e aparece um warning: "Possible Unhandled Promise Rejection (id: 0); Error: Não foi possível efetuar o login". Vou passar meu código abaixo porém já informo que fiz mais testes na API com o postman onde tentei enviar via POST nesta mesma url com os mesmo dados de inputs e também não retornou o token E COM ISSO FICA MUITO CLARO QUE HÁ ALGO DE ERRADO COM A API. Peço a gentileza que testem a API e confirme se estou errado. Segue abaixo meu código:
import React, { Component } from 'react'
import { View, Dimensions, StyleSheet, TextInput, Button } from 'react-native'
const dimensions = Dimensions.get('screen');
export default class Login extends Component {
efetuaLogin(){
let uri = 'https://instalura-api.herokuapp.com/api/public/login';
const requestInfo = {
method:'POST',
body:JSON.stringify({
login:this.state.usuario,
senha:this.state.senha
}),
header: new Headers({
'Content-Type':'application/json'
})
}
fetch(uri,requestInfo).then(r1=>{ //console.log(r1);
if(r1.ok) return r1.text();
throw new Error("Não foi possível efetuar o login.");
}).then(r2=>console.warn(r2));
}
render() {
return (
<View>
<View style={styles.form}>
<TextInput style={styles.input} placeholder="Usuário..."
onChangeText={texto=>this.setState({usuario:texto})} autoCapitalize="none" />
<TextInput style={styles.input} placeholder="Senha..."
onChangeText={texto=>this.setState({senha:texto})} secureTextEntry={true} />
<Button title="Login" onPress={this.efetuaLogin.bind(this)}
color='darkgreen' />
</View>
</View>
);
}
}
const styles = StyleSheet.create({
form:{
width:dimensions.width * 0.8,
},
input:{
height:40,
borderBottomWidth: 1,
borderBottomColor:'#ddd'
}
});