簡體   English   中英

無法在SOAP請求上設置Content-Type

[英]Unable to set Content-Type on SOAP Request

我正在向服務器發送SOAP調用,服務器堅持使用某種Content-Type。 我正在嘗試設置內容類型,但它似乎沒有正確傳輸。

我收到服務器的回復:

415無法處理消息,因為內容類型為'text / xml; charset = utf-8'不是預期的類型'application / soap + xml; 字符集= UTF-8'

我粗略的代碼:

val soapConnectionFactory = SOAPConnectionFactory.newInstance()
val soapConnection = soapConnectionFactory.createConnection()
val url = "https://secure.com"

val messageFactory = MessageFactory.newInstance()
val soapMessage = messageFactory.createMessage()

// (create envelope)

val headers = soapMessage.mimeHeaders
headers.setHeader("Content-Type", "application/soap+xml; charset=utf-8")

soapMessage.saveChanges()

val soapResponse = soapConnection.call(soapMessage, url)
soapConnection.close()

通過調試,內容類型似乎正確設置到soapConnection.call()。 有任何想法嗎?

您正在創建默認的MessageFactory:

val messageFactory = MessageFactory.newInstance()

正如doc所說的這種方法

創建一個新的MessageFactory對象,該對象是默認實現的實例(SOAP 1.1)

SOAP 1.2消息內容類型是“application / soap + xml”,而SOAP 1.1是“text / xml”( http://www.w3.org/TR/soap12-part0/#L4697 )。

嘗試創建一個提供SOAP 1.2作為協議的消息工廠實例

val messageFactory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL)

暫無
暫無

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

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