Угловые 6 HttpOptions, Observe Response, POST request [duplicate]

Вы также можете использовать метод compareTo() для сравнения двух строк. Если результат compareTo равен 0, то две строки равны, в противном случае сравниваемые строки не равны.

== сравнивает ссылки и не сравнивает фактические строки. Если вы создали каждую строку, используя new String(somestring).intern(), вы можете использовать оператор == для сравнения двух строк, в противном случае могут использоваться только методы equals () или compareTo.

6
задан Phil 11 December 2017 в 22:08
поделиться

2 ответа

Вы должны включить параметры. См. github ticket # 18586 , запись alxhub 9 августа 2017 г.

Машинопись должна быть способна выводить значения наблюдения и responseType статически, чтобы выберите правильный тип возврата для get (). Если вы передаете неправильный тип объектов, он не может вывести правильный тип возврата.

login(credentials: Credentials): Observable<any> {
    return this.httpClient.post<any>(`${environment.USER_SERVICE_BASE_URL}`,
      {'username': credentials.username, 'password': credentials.password}, {
      headers: new HttpHeaders({'Content-Type': 'application/json'}),
      observe: 'response'
    })
      .map((res) => ...
15
ответ дан Igor 15 August 2018 в 16:48
поделиться
  • 1
    Благодарю. это было действительно запутанно, и я не мог найти что-либо в этой конкретной ошибке с Google – Phil 11 December 2017 в 22:16
  • 2
    @Phil - Нет проблем. Я обновил ответ с помощью билета github. – Igor 11 December 2017 в 22:20

Способ, которым я обходился, без встроенных опций (что может привести к нечеткому коду) заключается в создании интерфейса для параметров запроса. Код выглядит следующим образом:

export interface IRequestOptions {
    body?: any;
    headers?: HttpHeaders | { [header: string]: string | Array<string> };
    observe?: any;
    params?: HttpParams | { [param: string]: string | Array<string> };
    reportProgress?: boolean;
    responseType?: "arraybuffer" | "blob" | "json" | "text";
    withCredentials?: boolean;
}

Затем это используется как таковое:

const options: IRequestOptions = {
    headers: new HttpHeaders({"Content-Type": "application/json"}),
    observe: "response"
};
return this.httpClient.post(`${environment.USER_SERVICE_BASE_URL}`,
    {"username": credentials.username, "password": credentials.password}, options)
    .pipe(
        map((res: HttpResponse<any>) => ...
    );

Изменить для исходного сообщения для использования lettable или pipeable (что угодно текущее имя - сегодня). Операторы

5
ответ дан blo0p3r 15 August 2018 в 16:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: