передать параметры в угловой получить запрос httpclient - PullRequest
0 голосов
/ 26 апреля 2018

Я бы установил данные через заголовки или параметры и использовал бы метод get.

Я создал свой сервис.

public openFile(pathFile) {
  let url='/download/';
  let mockUrl; 
  let file= new HttpHeaders();
  file=pathFile
  return this.httpClient.get(url,file);
}

Проблема в коде VS Я получаю эту ошибку:

Argument of type 'HttpHeaders' is not assignable to parameter of type '{ headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: Ht...'

И когда я пытаюсь запустить службу, сервер выдает мне эту ошибку:

{timestamp: 1524743028303, status: 400, error: "Bad Request", exception: "org.springframework.web.bind.MissingServletRequestParameterException", message: "Required String parameter 'pathFile' is not present", …}

1 Ответ

0 голосов
/ 26 апреля 2018

Редактировать: Я пропустил еще одну ошибку при копировании вашего примера и изменил только одну строку.

Посмотрите на строку с httpClient.get. Вы не передаете заголовки напрямую, но передаете объект, который имеет поле заголовков.

public openFile(pathFile) {
    let url='/download/';
    let headers= new HttpHeaders();
    headers.set('file', pathFile);
    return this.httpClient.get(url, { headers: headers });
}

Как упомянул @infodev в комментарии, вы можете пропустить класс HttpHeaders. Тогда это будет выглядеть примерно так:

public openFile(pathFile) {
    let url='/download/';
    return this.httpClient.get(url, { headers: { file: pathFile } });
}
...