我在XML
中呼叫一个接受XML
请求和响应的服务,所以我已经完成了下面的代码
let xmlBody = '<ServiceRequest>' +
'<SRNumber>123456' +
'</SRNumber>' +
'</ServiceRequest>';
this.httpPlugin.setHeader('authorization', "Bearer " + token);
this.httpPlugin.setHeader('content-type', "application/xml");
this.httpPlugin.post('https://xxx.test.server/Service', xmlBody, {}).then((response) =>
{
})
根据上述请求,它始终返回错误状态:500
我认为我的身体没有到达服务器
任何帮助我如何通过HttpPlugin请求XML
正文?
答案 0 :(得分:1)
经过大量的R&amp; D后,我得到了在我的请求中通过XML
的解决方案,请查看以下代码以获取更多详细信息:
let headers = {
"Content-type": 'application/xml',
"Authorization": "Bearer " + token,
};
let xmlBody =
'<ServiceRequest>' +
'<CaseNumber>' + caseNumber +
'</CaseNumber>' +
'</ServiceRequest>'
this.httpPlugin.setDataSerializer('json');
this.httpPlugin.post('https://test-dev.com/Service', xmlBody , headers).then((response) => {
console.log("XML Response : ",JSON.stringify(response.data));
xml2js.parseString(response.data, function (err, result) {
if(result){
resolve(result);
}else{
reject(err);
}
console.log("XML parser success:",result);
console.log("XML parser error:",err);
});
在上面的代码中,我们需要遵循2-3步骤,这将导致XML
请求在服务器上成功发送。
1st:在JSON
formate中设置标头不使用插件的setHeader方法。
第二名:设置XML
正文,并在其中添加新行。
第3名:这一点是没有此代码的补丁
this.httpPlugin.setDataSerializer('json');
通过这种方式,我们可以成功获得基于XML
的API的响应。
帮助来源: https://github.com/silkimen/cordova-plugin-advanced-http/issues/34
注意:XML解析使用xml2js插件
希望这能帮助像我这样面临同样问题的人。