Я пытаюсь поместить три параметра в моем запросе к почте для конкретного API, но я не получил ответ, как я ожидал. API хорошо работает в моем почтовом ящике, но я не уверен в своем методе выборки в моем собственном приложении реакции. Я новичок в этом, поэтому я не знаю, как добавить заголовки в свой запрос API, я следовал некоторым документам, но не получил много, пожалуйста посмотрите и ответьте на мой вопрос.
constructor (props) {
super (props)
this.state = {
detail: ''
}
}
ComponentDidMount(){
var data = new FormData();
data.append('mobile_number','8615351655')
data.append('mobile_country_code','+21')
data.append('rec_name','Shantanu Talwaar')
}
fetchData = async() => {
fetch('http://link.com/link/',
{
method: 'POST',
headers:{
//this what exactly look in my postman
'Authorization': 'Token 97a74c03004e7d6b0658dfdfde34fd6aa4b14ddb;
},
body: this.data
})
.then((response) => response.json())
.then((responseJson) => {
alert(responseJson.detail)
}).catch((error) => {
alert('error')})}
render() {
return (
<View style = {styles.container}>
<Button onPress = {this.fetchData} title = "fetch"/>
<Text style={styles.text}>Fetched data displays below</Text>
<Text style={styles.text}>{this.state.detail}</Text>
</View>
)
}
}
Вот результат, который я сейчас получаю в окне предупреждения: "Учетные данные для аутентификации не предоставлены".
После вашего токена пропал знак.
'Authorization': 'Token 97a74c03004e7d6b0658dfdfde34fd6aa4b14ddb;
И так как это объект JSON, вы должны удалить точку с запятой
Итак, окончательный код будет
'Authorization': 'Token 97a74c03004e7d6b0658dfdfde34fd6aa4b14ddb'
Есть еще одна проблема. Объявление данных недоступно из функции выборки. Так что вы должны сделать что-то вроде этого.
fetchData = async() => {
var data = new FormData();
data.append('mobile_number','8615351655')
data.append('mobile_country_code','+21')
data.append('rec_name','Shantanu Talwaar')
fetch('http://link.com/link/',
{
method: 'POST',
headers:{
//this what exactly look in my postman
'Authorization': 'Token 97a74c03004e7d6b0658dfdfde34fd6aa4b14ddb'
},
body: data
})
.then((response) => response.json())
.then((responseJson) => {
alert(responseJson.detail)
}).catch((error) => {
alert('error')
})
}
я думаю, что вы можете использовать "x-access-token" в качестве имени заголовка для аутентификационного токена и поместить "Conteent-Type" тоже.
fetchData = () => {
fetch('http://link.com/link/',
{
method: 'POST',
headers:{
'Content-Type': "application/json",
'x-access-token': 'Token 97a74c03004e7d6b0658dfdfde34fd6aa4b14ddb'
},
body: this.data
})
.then((response) => response.json())
.then((responseJson) => {
console.log(responseJson.detail)
}).catch((error) => {
alert('error')})
}