簡體   English   中英

服務器無法為請求提供服務,因為媒體類型不受支持 Soap Nodejs

[英]The server cannot service the request because the media type is unsupported Soap Nodejs

我已經在 nodejs 中使用消耗 wsdl 項目的庫“soap”構建和 api。

我正在嘗試發帖,但在響應正文中收到此錯誤:服務器無法為請求提供服務,因為不支持媒體類型 同樣在響應正文中,我有這條消息:無法處理消息,因為內容類型為 'text/xml; charset=utf-8' 不是預期的類型 'application/soap+xml; 字符集=utf-8 我做了一些研究,發現這是服務器和客戶端之間的 soap 版本問題。

我試試這個東西:

  1. 創建 soap 客戶端時添加了forceSoap12Headers:false ,反之亦然
  2. 將帶有接受內容和內容類型的 soap 庫重寫為: text/xml; charset=utf-8 ,也更改屬於 soap v1.1 的所有方案
  3. 嘗試在請求'Accept' 'text/xml'中添加httpHeader

這是我的代碼的一部分:

 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 application/soap+xml; 字符集=utf-8 我只是覆蓋了端點,請求成功了!!

為了我,

  1. 我去標題,取消選擇原來的內容類型
  2. 然后轉到預設,單擊管理預設
  3. 在那里,我點擊添加,然后在彈出窗口中
    一種。 選擇標題預設名稱(任何都可以)
    b. 對於 key -- 輸入 Content-type
    C。 對於值——輸入 text/xml
    d. 最后點擊右下角的添加
  4. 關閉管理預設彈出窗口
  5. 單擊您的新預設,然后在底部選擇新的內容類型

這是我修復錯誤的方法。 首先轉到 Headers:然后,如果您能夠在現場更改默認內容類型值,從 application/xml 到 text/xml,請先嘗試編輯它。 如果不取消選中內容類型復選框,並在底部的同一列中,只需為鍵鍵入內容類型,為值鍵入文本/xml。 然后就完美了!!!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM