使用POST方法获取带有axios的react-native的API数据

时间:2018-01-12 10:09:32

标签: react-native axios

我需要使用axios在react-native app中获取数据。我可以使用简单的GET方法获取数据,如下所示:

class AlbumList extends Component {

  state = { albums: [] };

componentWillMount() {
  //axios.get('https://rallycoding.herokuapp.com/api/music_albums') .then(response => console.log(response));
  axios.get('http://rallycoding.herokuapp.com/api/music_albums')

  .then(response => this.setState({ albums: response.data }));
        }
        renderAlbums() {
          return this.state.albums.map(album =>
          <AlbumDetail key={album.title} album={album} />);
         // return this.state.albums.map(album => <Text>{album.title}</Text>);
        }

render() {
    console.log(this.state);

return (
   <View>
        {this.renderAlbums()}
    </View>    
);
}
}

如何使用POST方法从API获取数据,我还需要传递header和api-username,api-password,apitoken?

我需要像https://stackoverflow.com/a/41358543/949003这样但 AXIOS

修改

我需要从LINNWORK API获取数据。如果有人这样做,请指导。他们首先需要authorize然后我可以从那里获取数据。所以authrize然后下一步。

1 个答案:

答案 0 :(得分:7)

axios post方法有3个参数,即url,data&amp;配置。

您可以按如下方式构建axios post请求:

axios.post(
    'http://rallycoding.herokuapp.com/api/music_albums', 
    {
       'param1': 'value1',
       'param2': 'value2',
       //other data key value pairs
    },
    {
       headers: {
           'api-token': 'xyz',
            //other header fields
       }
    }
);

在您的情况下,您需要访问https://api.linnworks.net/api/Inventory/GetCategories tokenAuthorization需要来自axios.get("https://api.linnworks.net/api/Inventory/GetCategories", { headers: { 'Authorization': 'token-from-auth-api' } }).then((response) => { console.log(response.data); }) 标头中的auth api的[ text input "item name" ] [ dropdown "item category" ] [ date picker ] 。因此,您通过axios的GET请求将是:

http://example.com/currentPage?filter=Abc&category=&dates=