Как использовать параметр Body В запросе API Post с использованием Typescript - PullRequest
0 голосов
/ 21 января 2019

Я хотел знать, как добавить тело в запрос API, используя машинопись.Я сделал этот запрос на почтальона, и я получил ответ, однако я не знаю, как это сделать, используя машинопись.Я продолжаю получать "ПЛОХОЙ ЗАПРОС".Я проверил документацию API с хоста, и они показали мне, как это сделать:

Request Format
POST https://api.channeladvisor.com/oauth2/token

Authorization: Basic [application id:shared secret]
Content-Type: application/x-www-form-urlencoded
Body: grant_type = refresh_token &
      refresh_token = [refresh token]

У меня есть токен обновления и детали авторизации.Поэтому я попытался сделать это в машинописи:

this.http.post('https://api.channeladvisor.com/oauth2/token',                    
  {body:{
    grant_type:"refresh_token",
    refresh_token:this.refresh_token
  }},

  {headers:{
    'Authorization':this.token
    }})
.subscribe((response)=>{
    this.new_token=response;
    console.log("This is the new token")
      console.log(this.new_token)
  })
}

Но когда я запускаю его, я получаю ошибку неверного запроса.Я предполагаю, что это как-то связано с синтаксисом.

1 Ответ

0 голосов
/ 22 января 2019

У вас есть следующие требования к телу:

  grant_type = refresh_token &
  refresh_token = [refresh token]

С типом содержимого application/x-www-form-urlencoded.

Ошибка

Ваш код:

this.http.post('https://api.channeladvisor.com/oauth2/token',                    
  {body:{
    grant_type:"refresh_token",
    refresh_token:this.refresh_token
  }},

собирается отправить content-type application/json с телом в формате json.

Исправлено

Исправлено код:

this.http.post('https://api.channeladvisor.com/oauth2/token',                    
  {body:`
    grant_type = refresh_token &
    refresh_token = ${something}
  `},
  {headers:{
    'Authorization':this.token,
    'Content-Type':'application/x-www-form-urlencoded'
    }})
...