簡體   English   中英

URLConnection不會為SOAP 1.2設置Content-Type

[英]URLConnection does not set Content-Type for SOAP 1.2

我們有一個Web服務客戶端,該客戶端應該能夠與SOAP 1.1SOAP 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的連接,我們可以看到連接頭參數是

  • 內容長度333
  • 用戶代理Java / 1.8.0_20
  • TESTHEADER WERT1
  • 連接關閉
  • 內容類型text / xml; 字符集= utf-8的
  • [..]

這表明一般情況下我們可以為連接設置參數(請參閱“ 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.

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