В настоящее время я работаю над приложением Ionic, которое должно выполнять вызовы REST API с использованием XML в качестве тела. У меня возникли проблемы при получении звонка, чтобы действительно публиковать с XML. Это мой LoginProvider. Я использую DOMParser для анализа своих данных в XML перед их отправкой в API.
import { HttpClient, HttpHeaders} from '@angular/common/http';
import { Injectable } from '@angular/core';
import * as Constants from '../../services/constants';
@Injectable()
export class LoginProvider {
constructor(public http: HttpClient) {
}
postLogin(username : String, password : String) {
let parser = new DOMParser();
let xmlString = "<alm-authentication> <user>" + username + "</user> <password>" + password + "</password> </alm-authentication>";
let doc = parser.parseFromString(xmlString, "application/xml");
console.log(doc);
let headers = new HttpHeaders()
.set('Access-Control-Allow-Origin', '*')
.set('Content-Type', 'application/xml');
return new Promise(resolve => {
this.http.post(Constants.API_ENDPOINT + "/authentication-point/alm-authenticate", doc, {headers: headers}).subscribe(data => {
resolve(data);
}, err => {
console.log(err);
});
});
}
}
Но когда я проверяю почтовый запрос в Google Chrome, я получаю следующее:
Похоже, что полезная нагрузка находится в формате JSON вместо XML. Как я могу заставить его отправлять XML-файл?
Я уже пытался изменить тело на строку XML вместо файла и изменить тип содержимого, но это все равно дало ту же ошибку.
Я использую ионно-угловую версию 3.9.2 с угловой версией 5.0.3