2009-06-02 139 views
0

我有一個簡單的問題,對你來說,我似乎無法擺脫困境。WSE 3.0設置的內容類型

的情況如下:

  • 我們創建併發送請求到Web服務,使用WSE 3
  • Web服務是用Java編寫。

大部分的事情都很好,但我似乎無法對WebResuest或WebResponse的ContentType產生影響,這會導致一些問題。

總是收到的errormessage的是以下內容:

客戶端發現的響應的內容類型 '應用/ XOP + xml的;類型= 「文本/ XML;字符集= UTF-8」',但預期「文本/ XML」。 請求失敗,出現錯誤消息:....

在錯誤消息的詳細信息中,它對來自服務器的呼叫作出了響應,並且它正常通過。 顯然它不是很好,因爲它正在通過例外:)。

那麼,我該如何設置響應的預期內容類型?

如果我沒有錯,WSE 3.0中的請求和響應必須具有相同的ContentType。所以我想我會嘗試設置request.Headers [HttpRequestHeader.ContentType]到預期的,但沒有運氣。 (還可以,我可以設置HttpWebRequest的的的contentType在不少地方,但他們都不做的伎倆)

+0

您可能已經知道這一點,但只是要確定:您知道WSE已過時,對嗎?它不支持VS2008或以上? – 2009-06-02 13:38:32

回答

1

這已經幸運的是解決了,所以這裏的供將來參考的解決方案:

我們的客戶繼承來自WebServicesClientProtocol類,其中有一個名爲GetWebResponse(..)的方法。 簡單地重寫該方法並更改Response的ContentType似乎可以解決我們的問題。

protected override WebResponse GetWebResponse(System.Net.WebRequest request) 
    { 
     WebResponse response = base.GetWebResponse(request); 
     response.Headers[HttpResponseHeader.ContentType] = "text/xml"; 
     return response; 
    }