javascript - 服务器无法为请求提供服务,因为媒体类型不受支持 Soap Nodejs

标签 javascript node.js api soap wsdl

我已经在 nodejs 中使用消耗 wsdl 项目的库“soap”构建和 api。

我正在尝试发帖,但在响应正文中我收到此错误:服务器无法为请求提供服务,因为媒体类型不受支持 ;在响应正文中我也有这条消息:无法处理消息,因为内容类型为 'text/xml; charset=utf-8' 不是预期的类型 'application/soap+xml;字符集=utf-8 .我做了一些研究,发现这是服务器和客户端之间的 SOAP 版本问题。

我试试这个东西:

  • 创建soap客户端时添加 forceSoap12Headers: 假 反之
  • 将带有接受内容和内容类型的soap库重写为:文本/xml;字符集=utf-8 ,同时更改所有属于soap v1.1
  • 的方案
  • 尝试添加 httpHeader 请求中 '接受' '文本/xml'

  • 这是我的代码的一部分:

     MethodTest: async function(wsdl){
                try{
                var client  =  soap.createClient(wsdl,{forceSoap12Headers:false},async (err,result)=>{
                    if(err){
    
                    }else{
                        var descripcion = await this.ServiceDescription(wsdl); 
                if(!descripcion.error){
                    var body = { _xml:  "<i0:GetAccountBalance>"+
                       "<i0:dc>"+
                          "<i0:RequestId>000</i0:RequestId>"+
                          "<i0:SystemId>WEB</i0:SystemId>"+
                          "<i0:SourceId>AR</i0:SourceId>"+
                          "<i0:AccountNumber>42526372</i0:AccountNumber>"+
                       "</i0:dc>"+
                       "<i0:dcSecurity>"+
                          "<i0:WebUser>NDsVwQwRbwbuY / DcX2PRGw ==</i0:WebUser>"+
                          "<i0:WebPassword>/d8zOcR9K9xqpl8CdhUJrw==</i0:WebPassword>"+
                       "</i0:dcSecurity>"+
                    "</i0:GetAccountBalance>"}
                    try{
                    var response = await (result[descripcion.metodos[8]+"Async"])(body)
                    }catch (e){
                        console.log(e.response)
                    }
                }
    
                    }
                })

    最佳答案

    我找到了。我有两个问题,在创建客户端服务时,默认端点设置错误,需要 Content-Type 应用程序/SOAP +xml;字符集=utf-8 .我只是覆盖了端点,请求就OK了!!

    关于javascript - 服务器无法为请求提供服务,因为媒体类型不受支持 Soap Nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59109521/

    相关文章:

    javascript - 捕获所有 http 请求并将 url 发送给父级

    javascript - 为什么我的 Google 折线图不显示线条?

    ios - 使用 socket.io v1.3.x 将单个用户的请求发送到一组预定义用户

    node.js - -bash : nvm: command not found

    swift - 快速从请求响应中获取 header 数据

    javascript - .append jQuery 函数

    javascript - 如何使用 jquery each() 获取前一个元素

    node.js - Node --experimental-modules,请求的模块不提供名为的导出

    javascript - 登录后 Facebook api 不会重新加载

    javascript - 多个 JS api 调用