Как сделать закодированный POST-запрос, используя axios? - PullRequest
1 голос
/ 24 мая 2019

Я пытаюсь создать POST-запрос в моем приложенииactjs на основе следующего примера запроса API:

Пример запроса API

curl -X "POST" -H "Authorization: Basic ZjM4ZjAw...WY0MzE=" -d grant_type=client_credentials https://accounts.spotify.com/api/token

I'mдолжен быть base64, кодирующий текст, следующий за «Basic» в заголовке.

Как мне создать этот запрос в javascript, используя axios?Это то, что у меня есть:

async componentDidMount() {
        const encodedString = new Buffer('1ff56abe7792f426ea41a771d707d6690:1b2cca2dedd3949b0a6c5e1582446c9c5').toString('base64');

        const [initSpotResponse] = await Promise.all([
            axios.post('https://accounts.spotify.com/api/token', { headers: { 'Authorization': `Basic ${encodedString}` } })
        ]);
    }

Как включить часть "grant_type = client_credentials"?

1 Ответ

1 голос
/ 24 мая 2019

Согласно axios ' README , это псевдонимы метода запроса для запросов POST

axios.post (url [, data [, config]])

axios.post('https://accounts.spotify.com/api/token', 
    { data: { grant_type: ‘client_credentials’} }, 
    { headers: { 'Authorization': `Basic ${encodedString}` } }
)

Вы также можете сделать

const options = {
   url: ‘https://accounts.spotify.com/api/token', 
   method: 'POST',
   headers: { 'Authorization': `Basic ${encodedString}` },
   data: { grant_type: ‘client_credentials’} 
};

axios(options);
...