Невозможно использовать HttpRequest<any> в качестве опции в запросе клиента http

Я пытаюсь перенести мой угловой проект из HttpModule в HttpClientModule, но у меня возникают проблемы с запросом заголовка, поэтому я много раз думал, что понимаю, что здесь происходит. Итак, что я хочу сделать в данный момент, это постепенно перемещаться к HttpClient, это означает, что я не использую HttpInterceptor, и я пытаюсь использовать идею из HttpModule, где мы можем использовать RequestOptions в запросе http (this.http.get(url, requestOptions)). Из того, что я читал о HttpInterceptor, я подумал, что мог бы использовать HttpRequest в качестве параметров в запросе http-клиента. Вот как я строю свой метод.

get(url:string, options: HttpRequest<any>): Observable<HttpRequest<any>> {
 return this.httpClient.get(url, this.getHeader(options));
}

getHeader(options: HttpRequests<any>): HttpRequests<any> {
 let headers = new HttpHeaders();
 if(options && options.headers && option.headers instanceOf HttpHeaders) {
  headers = options.headers;
 }
 headers.append('authorization': 'abc');
 let params: new HttpParams().set('id', this.id);
 let headerOptions = {
  params: params,
  headers: headers,
  withCredential: true,
 }
 Object.keys(options).forEach(key => {
  if ( !(key===params && key===headers && key===withCredential) ) {
   headersOption[key] = options[key];
  }
 });
 return headersOption as HttpRequest;
}

В коде Visual Studio он жалуется на то, что тип заголовка не совпадает с типом передаваемых параметров. Так есть ли другой способ сделать это, чтобы получить эти параметры в мой запрос заголовка?

1 ответ

Решение

HttpClient#get функция не позволяет HttpRequest в качестве одного из параметров.

В то время как параметры имеют общие свойства HttpRequest, они не могут быть использованы взаимозаменяемо.

Если вы удалите, где вы добавили HttpParams типа, код должен компилироваться без проблем.

Другие вопросы по тегам