![](/img/trans.png)
[英].NET HttpListener/HttpWebRequest/HttpWebResponse and HTTPS
[英]Why were constructors for HttpWebRequest and HttpWebResponse removed from .NET?
產品代碼實例化這些類型也許沒有意義,但是構造函數的棄用使使用WebRequest/Response
的Http
實現的單元測試客戶端的麻煩遠遠超過了應有的程度。 我認為將構造函數撤走沒有任何價值,而讓它們具有明顯的價值,那么棄用它們的技術原因是什么呢?
嗯,為什么您確實需要HttpWebRequest
的構造函數? 與WebRequest.Create
相比,我看不到它的任何首選項,建議將其作為從一開始就在所有版本中創建此類請求的首選方法。
此方法將HttpWebRequest
作為WebRequest
返回,但是您仍然可以根據需要將其WebRequest
轉換為直接類型。 如果您提供其他協議,例如file://
或ftp://
,它將返回相應的類型。
我認為這個過時列表是將所有使用的平台標准化.NET Core的一部分,並且在代碼的單個位置維護WebRequest
創建將更加簡單。
更新 :
我認為您已經看過有關派生WebRequest
類的文章,因此,我將在這里寫另一組意見:
從WebRequest
出發時,需要注意兩點:
IWebRequestCreate
接口 WebRequest.RegisterPrefix
方法注冊該類 正如MSDN所說:
默認情況下,
HttpWebRequest
類已注冊為服務於HTTP和HTTPS方案的請求。 嘗試為這些方案注冊其他WebRequest
后代的嘗試將失敗。
因此,Microsoft希望控制面向http
和https
的類,而不希望任何人用自己的功能替換此功能。 我認為可以這樣做是出於安全考慮。 悲傷但真實。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.