Модуль Angular Http
имел объект RequestOptions
, который мог быть передан методу get
(например, this.http.get(fooUrl, barOptions)
. RequestOptions
содержал любые заголовки. Это устарело . «Ближайшая замена» устаревшего RequestOptions
- HttpRequest .
Есть две проблемы с этим:
1. HttpRequest
имеет параметр url
, поэтому он НЕ эквивалентен RequestOptions
. На самом деле, кажется, что он инкапсулирует весь запрос, но я не вижу, чтобы он использовался где-либо, поэтому я предполагаю, что это просто внутренний класс ..
2. HttpClient
Метод get
НЕ принимает HttpRequest
в качестве аргумента.
Исходный код метода HttpClient
get
выглядит следующим образом:
/**
* Constructs a `GET` request that interprets the body as an `ArrayBuffer` and returns the response in
* an `ArrayBuffer`.
*
* @param url The endpoint URL.
* @param options The HTTP options to send with the request.
*
* @return An `Observable` of the response, with the response body as an `ArrayBuffer`.
*/
get(url: string, options: {
headers?: HttpHeaders | {
[header: string]: string | string[];
};
observe?: 'body';
params?: HttpParams | {
[param: string]: string | string[];
};
reportProgress?: boolean;
responseType: 'arraybuffer';
withCredentials?: boolean;
}): Observable<ArrayBuffer>;
Есть ли какой-нибудь тип, который я могу использовать для параметра options
сейчас? Должен ли я просто определить интерфейс с HttpHeaders ? Если для него нет типа, почему бы и нет?
Мой старый код выглядит так:
reqOptions.headers.set('Authorization', user.token);
reqOptions.headers.set('RefreshToken', user.refreshToken);
RequestOptions
из старого Http
модуля имел свойство headers и был статически напечатан.
P.S. Я прочитал ответ здесь, но он не использует тип:
Angular4: Http -> HttpClient - requestOptions