我知道它是一個noob問題,但只是想知道GetResponseStream()
是否可以在任何情況下返回null?Can WebResponse.GetResponseStream()是否返回null?
回答
嗯,這有點到具體子類 - 但我從來沒有見過它這樣做的任何的子類,它不是記錄作爲一個有效的返回值。我從來沒有看到任何編寫防禦性代碼來檢查這一點,我不希望這樣做。這並不是說這樣的代碼不存在,但我不認爲這是必要的。
如果響應中沒有內容(但響應成功),我希望任何好的實現都返回一個空的流。
你在哪裏發現「null」沒有記錄爲有效的返回值?你能給我鏈接嗎? – iotaSingh
@iotaSingh:我怎樣才能給你一個鏈接?我說過*沒有記錄*。我沒有說它被記錄爲不是有效的返回值,我說它沒有被記錄爲有效的返回值。那些*非常*不同的陳述。 –
沒有從WebResponse
派生的內置類型,特別是HttpWebResponse
,可以返回null。這種迷信的觀念誤導了許多開發者。不要檢查null。這樣的代碼是死代碼。
與返回空流相比,甚至意味着什麼?這根本不符合邏輯。
另外,GetResponse()
不能返回null。再次,這是什麼意思?! HTTP協議不支持「空響應」的概念。如果由於庫缺陷而發生這種情況,無論如何都無法處理這種情況。任何這樣的檢查都無濟於事。
可以創建從WebResponse
派生的類,它返回一個瘋狂的值,如null
。沒有內置的類可以這樣做,它應該被認爲是一個返回null
的錯誤。衍生自WebResponse
的類非常罕見。我從未見過一個。
這裏有一個很好用的代碼模式:
var request = WebRequest.Create("http://example.org/");
using (var response = request.GetResponse())
using (var responseStream = response.GetResponseStream())
using (var responseReader = new StreamReader(responseStream))
{
var contents = responseReader.ReadToEnd();
}
它演示瞭如何簡潔和安全地讀取使用HttpWebRequest
的HTTP URL的內容。
- 1. Can Runtime.getRuntime()。availableProcessors()是否返回0?
- 2. EditText.getText()是否返回null?
- 3. getChildAt(0)是否會返回null?
- 4. CreateFile是否可以返回NULL?
- 5. May UIComponent#getFamily()是否返回null?
- 6. 可以String.Split()是否返回null? (.net)
- 7. 如何檢查它是否返回null?
- 8. 檢查是否單個()LINQ返回NULL
- 9. AppDomain.CreateInstanceAndUnwrap是否可以返回null?
- 10. 返回null shared_ptr是否正確?
- 11. XmlSerializer.Deserialize是否可以返回null?
- 12. 是否getActionBar()應該返回null?
- 13. document.getElementsByTagName('head')[0]是否可以返回null?
- 14. SCOPE_INDENTITY()不工作是否返回null?
- 15. 新運算符是否返回NULL?
- 16. C#2.0:MethodBase.GetCurrentMethod()是否可以返回null?
- 17. 如何驗證是否string.split()返回null
- 18. 如何檢查SqlDataSource.SelectCommand是否返回null
- 19. Object.GetType()是否曾經返回null?
- 20. javax.persistence.Query.getResultList()是否可以返回null?
- 21. getDrawingCache()總是返回null
- 22. Can shouldComponentUpdate是否返回false clobber以前的更新,其中shouldComponentUpdate返回true?
- 23. NSJSONSerialization返回null
- 24. Can JaVers是否可以返回已篩選條目的計數?
- 25. 是否有可能知道BufferedReader.readLine()是否會提前返回null?
- 26. JSF:Target Unreachable,'null'返回null |對象是否被正確初始化?
- 27. getActionView返回null
- 28. Can WebRequest.GetResponse()。GetResponseStream()在沒有WebException的情況下返回null?
- 29. getMimeTypeFromExtension返回null
- 30. Android:BitmapFactory.decodeResource返回null
根據resharper它可以:http://stackoverflow.com/questions/16911056/can-webresponse-getresponsestream-return-a-null –