Угловой 6 - HTTPClient, отправляющий XML файл - angular


1

Я использую Angular 6 httpClient и имею этот код в сервисе:

import { Injectable } from @angular/core;
import { HttpClient, HttpHeaders } from @angular/common/http;

const httpOptions = {
  headers: new HttpHeaders({ Content-Type: text/xml })
};

@Injectable({
  providedIn: root
})
export class ApiService {

  constructor(private http: HttpClient) { }

  post() {
      const postedData = { userid: 1, title: title here, body: body text };
      return this.http.post(this url here, postedData, httpOptions).subscribe(result => {
        console.log(result);
      }, error => console.log(There was an error: ));
  }

}

Мой вопрос: я хочу опубликовать xml файл, чтобы как изменить этот код для этого?

Источник
  •  42
  •  1
  • 4 мар 2020 2020-03-04 06:15:44

1 ответ

2

Вы хотите получить данные POST XML? Вам нужен заголовок Http-типа.

Если вы хотите также получать XML, ваши варианты для типа ответа - json, text, blob и arraybuffer. XML не является вариантом, поэтому вы запрашиваете его как обычный текст, но (в зависимости от вашего сервера API) вы хотите установить тип "Применения /xml" Accepts type и ваш Response-Type в "text".

post() {
  // Set your HttpHeaders to ask for XML.
  const httpOptions = {
    headers: new HttpHeaders({
      Content-Type:  application/xml, //<- To SEND XML
      Accept:  application/xml,       //<- To ask for XML
      Response-Type: text             //<- b/c Angular understands text
    })
  };
  const postedData = 
    <userid>1</userid>
    <title>title here</title>
    <body>body text</body>;

  return this.http.post(this url here, postedData, httpOptions)
    .subscribe(
      result => { 
        console.log(result);  //<- XML response is in here *as plain text*
      }, 
      error => console.log(There was an error: , error));
  }
  • 4 мар 2020 2020-03-04 06:15:44