Próbuję użyć fetch
w React Native, aby pobrać informacje z API usługi Product Hunt. Dostałem prawidłowy token dostępu i zapisałem go w stanie, ale nie wydaje się, aby udało mu się przekazać go w nagłówku autoryzacji dla żądania GET.Używanie nagłówka autoryzacji z funkcją Pobierz w React Native
Oto co mam do tej pory:
var Products = React.createClass({
getInitialState: function() {
return {
clientToken: false,
loaded: false
}
},
componentWillMount: function() {
fetch(api.token.link, api.token.object)
.then((response) => response.json())
.then((responseData) => {
console.log(responseData);
this.setState({
clientToken: responseData.access_token,
});
})
.then(() => {
this.getPosts();
})
.done();
},
getPosts: function() {
var obj = {
link: 'https://api.producthunt.com/v1/posts',
object: {
method: 'GET',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + this.state.clientToken,
'Host': 'api.producthunt.com'
}
}
}
fetch(api.posts.link, obj)
.then((response) => response.json())
.then((responseData) => {
console.log(responseData);
})
.done();
},
Oczekiwanie mam dla mojego kodu jest następujący:
- Pierwszej będę
fetch
tokenu dostępu do danych z mojego importowanego modułu API - Po tym ustawię właściwość
clientToken
zthis.state
na równi z otrzymanym tokenem dostępu. - Następnie uruchomię
getPosts
, która powinna zwrócić odpowiedź zawierającą tablicę aktualnych wpisów z Product Hunt.
jestem w stanie sprawdzić, czy token dostępu jest odbierany i że this.state
odbiera go jako clientToken
nieruchomości. Jestem również w stanie sprawdzić, czy uruchamiany jest getPosts
.
Błąd Otrzymuję jest następujący:
pracuję przy założeniu, że ja jakoś nie przechodzi wzdłuż token dostępu właściwie w moim nagłówku autoryzacji, ale don wydaje się być w stanie dokładnie zrozumieć, dlaczego.
mógłbyś może dostarczyć działający kod? Próbuję użyć pobierania z nagłówkiem autoryzacji i nie sądzę, że mój kod autoryzacji jest przekazywany jako nagłówek, ponieważ otrzymuję odpowiedź '401'. – GoldenBeet
Zrobione, mam nadzieję, że to pomocne –
Och, byłem na twojej osobistej stronie z tym przykładem! Tak po raz pierwszy wzorowałem się na moim. Odkryłem jednak mój problem, po prostu mój adres URL był błędny. Wymagało to '/' na końcu, którego mi brakowało ... – GoldenBeet