使用 axios 向 SOAP 端点发出请求

Posted

技术标签:

【中文标题】使用 axios 向 SOAP 端点发出请求【英文标题】:Make request to SOAP endpoint using axios 【发布时间】:2018-02-09 00:27:26 【问题描述】:

我需要在我的React 应用程序中使用axios 向SOAP 端点发出请求。因此,我需要在请求中传递 xml 数据并在响应中接收 xml 数据。

我已将 axios 帖子与 json 数据一起使用,但我如何将其用于 xml? PFB 我使用的代码相同,但它不起作用。

JSON 发布请求:

var xmlData = <note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

var config = 
  headers: 'Content-Type': 'text/xml'
;

axios.post('/save', xmlData, config);

如果您对此有任何经验,请分享,TIA。

【问题讨论】:

你试过了吗:headers: 'Content-Type': 'application/xml' @DrunkDevKek :是的,我做了,没用! 您是否收到任何错误消息?也许您可以扩展您的意思,即它不起作用。 我要到星期一才离开,回来时会分享错误日志!谢谢。 看起来你的 xmlData 是错误的 - 它应该是这样的: w3.org/2001/XMLSchema-instance" xmlns:xsd="w3.org/2001/XMLSchema" xmlns:soapenv="@987654323 @" xmlns:urn="urn:uploadwsdl">
【参考方案1】:
let xmls='<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"\
                            xmlns:web="http://www.webserviceX.NET/">\
            <soapenv:Header/>\
            <soapenv:Body>\
              <web:ConversionRate>\
                <web:FromCurrency>INR</web:FromCurrency>\
                <web:ToCurrency>USD</web:ToCurrency>\
              </web:ConversionRate>\
            </soapenv:Body>\
          </soapenv:Envelope>';

axios.post('http://www.webservicex.com/CurrencyConvertor.asmx?wsdl',
           xmls,
           headers:
             'Content-Type': 'text/xml'
           ).then(res=>
             console.log(res);
           ).catch(err=>console.log(err));

此代码有助于发出肥皂请求

【讨论】:

好的解决方案和最佳答案。感谢您在 *** 中的回答【参考方案2】:

我使用了@Anuragh KP 的答案,但带有 SOAPAction 标头

axios.post('https://wscredhomosocinalparceria.facilinformatica.com.br/WCF/Soap/Emprestimo.svc?wsdl',
           xmls,
  headers:
  
    'Content-Type': 'text/xml',
    SOAPAction: 'http://schemas.facilinformatica.com.br/Facil.Credito.WsCred/IEmprestimo/CalcularPrevisaoDeParcelas'
  ).then(res => 
    console.log(res)
  ).catch(err => 
    console.log(err.response.data)
  )

【讨论】:

以上是关于使用 axios 向 SOAP 端点发出请求的主要内容,如果未能解决你的问题,请参考以下文章

发出多个 Axios 请求导致 CORS 错误

在 Express.js 上使用 Axios 向 Spotify API 发出 POST 请求时出现错误 400

使用 axios 向服务器发出请求会冻结 React Native 应用程序

如何在 React 应用程序中使用 JEST 测试向 api 发出 axios 请求的异步函数

Nuxt Auth 中间件向用户端点发出空请求

了解带有附件 (SwA) 的 WCF Multipart Soap 服务/端点