のために私は比較のために、いくつかの簡単なテストを行っていると私は見つけたいくつかの情報ははHttpClientをHttpWebRequestの対パフォーマンスとセキュリティ、および以下の接続
共有場合はシングルのHttpClientは、複数のリクエストで共有することができ、要求はしているました同じ宛先で、複数のリクエストが接続を再利用できる可能性があります。 WebRequestはリクエストごとに接続を再作成する必要があります。
私も使用する他の方法にいくつかのドキュメントを見上げHttpClientを例
次の記事では、私が試してみた
HttpWebRequest.UnsafeAuthenticatedConnectionSharing
可能な実装を共有し、高速NTLM認証接続を要約したもの以下に示す。
A)
private WebRequestHandler GetWebRequestHandler()
{
CredentialCache credentialCache = new CredentialCache();
credentialCache.Add(ResourceUriCanBeAnyUri, "NTLM", CredentialCache.DefaultNetworkCredentials);
WebRequestHandler handler = new WebRequestHandler
{
UnsafeAuthenticatedConnectionSharing = true,
Credentials = credentialCache
};
return handler;
}
using (HttpClient client = new HttpClient(GetWebRequestHandler(), false))
{
}
私は、私は最大のパフォーマンスを達成するように取るべきアプローチを理解することの接続を最小限に抑え、必ずセキュリティがある作りで任意の助けをいただければ幸いです
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("some uri string")
B)
using (HttpClient client = new HttpClient)
{
}
C)影響を受けません。
のHttpClientは、町の新しいクールな子供であり、それはおそらく、すべてのベストです、非同期/タスクをサポートし、よりもはるかにポータブルでありますその他(WebClientもあります)。ただし、.NET 4.5以上が必要です。言われているように、私はあなたが適切に使用された場合、生のパフォーマンスの面でそれらの間に多くの違いを見てはいけないと思う。 –
私はHttpClientを使ってこの投稿を見ています[あなたはHTTPCLIENTを間違えて使用しており、あなたのソフトウェアを破壊しています](http://aspnetmonsters.com/2016/08/2016-08-27-httpclientwrong/) –
は間違いなくHttpClientを使用すると、接続プール、非同期/待機ボックスを処理するだけでなく、HttpClientでユニットテストを書く方が簡単です。 – Duy