Делайте запросы Get с параметрами - PullRequest
0 голосов
/ 03 августа 2020

Я хочу написать на Angular машинописный текст этого запроса:

http://localhost:8080/engine/oauth/authorize?client_id=admin&redirect_uri=http://localhost:9000/callback&response_type=code&scope=read_profile

Когда я открываю эту ссылку в веб-браузере, я получаю ответ перенаправления:

http://localhost:9000/callback?code=7CLwgh 

Я пытался напишите этот код Typescript:

authCodeRequest(name: string, password: string): Observable<any> {
    const body = new HttpParams()
      .set('client_id', 'admin')
      .set('redirect_uri', 'http://localhost:9000/callback')
      .set('response_type', 'code')
      .set('scope', 'read_profile');
    const headers = new HttpHeaders({
      'Content-Type': 'application/x-www-form-urlencoded',
    });

    return this.httpClient
      .get(environment.api.urls.auth.token, body.toString(), {
        headers
      })
      .pipe(
        map((response: Authorize) => {
          console.log(data)
          return true;
        })
      );
  }

Я получаю эту ошибку для запроса на получение: TS2554: ожидаются 1-2 аргумента, но получено 3.

Каков правильный способ сделать запрос и получить результат из параметра перенаправленной ссылки code?

1 Ответ

1 голос
/ 04 августа 2020

Вы пытаетесь выполнить POST, но на самом деле выполняете GET. Замените httpClient.get на httpClient.post.

Если вы действительно хотите выполнить GET, вы не можете использовать x- www-form-urlencoded. Параметры вашего запроса будут добавлены к URL-адресу запроса.

let params= new HttpParams()
  .set('client_id', 'admin')
  .set('redirect_uri', 'http://localhost:9000/callback');
let options = { params: params };
return this.httpClient
  .get(environment.api.urls.auth.token, options)
  .pipe();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...