如何使用HttpPlugin ionic2在体内传递XML数据

时间:2018-01-24 10:42:23

标签: xml ionic2

我在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正文?

1 个答案:

答案 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插件

希望这能帮助像我这样面临同样问题的人。