2009-02-05 12 views
1

我正在發佈一個httpwebrequst文章,但在HttpWebResponse即時通訊中得到一個錯誤代碼403禁止。現在這個錯誤對我來說並不完全使用。我如何從HttpWebResponse獲取詳細信息

然後我試了一個測試程序(我沒有源代碼來:(),並用它來做同樣的帖子,它返回一個代碼403禁止,但也告訴我需要SSL SSL。有可能得到更多的「服務器端」細節出失敗的HttpWebRequest的,只是在錯誤代碼的?

謝謝


只是爲了明確的事情了,它的罰款即時得到的403,我只是想知道爲什麼測試程序可以知道SSL需要SSL,因爲我可以在webexception中看到類似的東西

+0

你可以添加更多關於你正在運行的環境的信息嗎? – 2009-02-05 14:51:58

回答

2

如果由於協議錯誤而拋出WebException,則其響應 屬性將包含從Web 服務器收到的實際響應。

try 
{ 
    // Do WebRequest 
} 
catch (WebException ex) 
{ 
    if (ex.Status == WebExceptionStatus.ProtocolError) 
    { 
     HttpWebResponse response = ex.Response as HttpWebResponse; 
     if (response != null) 
     { 
      // Process response 
     } 
    } 
} 
1

有沒有明確的方式要求更詳細的信息,沒有 - 基本上,你會得到你得到什麼。也就是說,Web服務器通常會返回文檔以及那些有時包含有用信息的錯誤代碼,就像您使用SSL證書解釋問題所得到的那樣。爲了幫助嗅探這樣的問題,請查看Fiddler - 它會向您顯示關於服務器響應的所有信息。

至於你的特定錯誤,很難說; 403可以指示幾個不同的事情。但是,如果您收到回覆指出與SSL有關的問題,那麼您可能只是處理了錯誤或過期的證書(see this question),或者服務器可能需要安全連接但未收到證書。您是否試過用Web瀏覽器直接點擊URL,以查看是否收到提示證書問題的警告,或者是否有任何非中介403響應?

相關問題