【问题标题】:Angular 6 - httpClient posting an XML fileAngular 6 - httpClient 发布 XML 文件
【发布时间】:2018-05-07 12:39:04
【问题描述】:

我正在使用 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 文件,那么我该如何修改这段代码呢?

【问题讨论】:

  • 只需将 postedData 更改为您的 XML 字符串
  • 添加 'content-type' 标头和可选的 'accept' const headers = new HttpHeaders(); headers = headers.append('Content-Type': 'text/xml'); headers = headers.append('Accept', 'text/xml'); 然后将您的有效负载作为字符串发送。

标签: angular typescript angular6


【解决方案1】:

你想POST XML 数据吗?您需要一个“Content-Type”Http 标头。

如果您还想接收 XML,响应类型的选项是 json、文本、blob 和 arraybuffer。 XML 不是一个选项,因此您将其作为纯文本请求,但(取决于您的 API 服务器)您希望将 Accepts 类型设置为“application/xml”并将您的 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));
  }

【讨论】:

猜你喜欢
  • 2019-05-03
  • 2018-07-05
  • 2019-08-20
  • 1970-01-01
  • 2013-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多