[英]URLConnection does not set Content-Type for SOAP 1.2
我們有一個Web服務客戶端,該客戶端應該能夠與SOAP 1.1
和SOAP 1.2
。 當前,我們有一個問題,即所設置的內容類型(代碼)不是實際的內容類型(通過SoapUI進行的監視顯示了針對我們請求的其他內容類型)。
我們使用java.net.URLConnection
private final String contentTypeSOAP12 = "application/soap+xml";
private void createEndpoint() throws MalformedURLException {
endpoint = new URL(new URL(webserviceConf.getUrl()), "", new URLStreamHandler() {
@Override
protected URLConnection openConnection(URL url) throws IOException {
URL target = new URL(url.toString());
URLConnection connection = target.openConnection(getProxy());
connection.setConnectTimeout(CONNECT_TIMEOUT);
connection.setReadTimeout(webserviceConf.getReadTimeout());
setKeepAlive(connection);
connection.setRequestProperty("TESTHEADER", "WERT1"); // works
connection.setRequestProperty("Content-Type", contentTypeSOAP12);// does not work
return connection;
}
});
}
通過監視SoapUI
的連接,我們可以看到連接頭參數是
這表明一般情況下我們可以為連接設置參數(請參閱“ TESTHEADER”),但是由於某些原因,我們對內容類型的設置不起作用。
在嘗試設置SOAP 1.2
的內容類型時,我們的連接具有SOAP 1.1
的內容類型。
顯然,您使用的SOAP框架在獲取URLConection之后將Content-Type標頭設置為SOAP 1.1值。 因此,替代URLStreamHandler的解決方法不起作用。 SOAP框架的設置中應該有一些內容指定應該使用SOAP 1.2的HTTP綁定。
也許, 這篇文章有幫助。
順便說一句,使用哪個SOAP框架?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.