[英]How to obtain content-type and encoding of a SOAP request programmatically (in TomEE)?
[英]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.