我已经在 nodejs 中使用消耗 wsdl 项目的库“soap”构建和 api。
我正在尝试发帖,但在响应正文中我收到此错误:服务器无法为请求提供服务,因为媒体类型不受支持 ;在响应正文中我也有这条消息:无法处理消息,因为内容类型为 'text/xml; charset=utf-8' 不是预期的类型 'application/soap+xml;字符集=utf-8 .我做了一些研究,发现这是服务器和客户端之间的 SOAP 版本问题。
我试试这个东西:
这是我的代码的一部分:
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/