我已经使用消耗wsdl项目的“ soap”库在nodejs中构建了api。
我正在尝试发布帖子,并且在响应正文中出现此错误:服务器无法处理请求,因为不支持媒体类型;同样在响应正文中,我有以下消息:由于内容类型为'text / xml,因此无法处理该消息; charset = utf-8'不是预期的类型'application / soap + xml; charset = utf-8 。我做了一些研究,发现这是服务器和客户端之间的肥皂版本问题。
我尝试这种事情:
这是我的代码的一部分:
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)
}
}
}
})
答案 0 :(得分:0)
我找到了。我有两个问题,创建客户端服务时,默认端点设置错误,并且需要Content-Type application / soap + xml; charset = utf-8 。我只是覆盖端点,请求顺利了!
答案 1 :(得分:0)
这就是我要解决的错误的原因。首先转到标题:然后,如果可以在现场将默认内容类型值从application / xml更改为text / xml,请尝试首先对其进行编辑。如果没有,请取消选中content-type复选框,并在底部的同一列中,键入Key的content-type和值的text / xml。然后它可以完美地工作!
答案 2 :(得分:0)
对我来说,