2017-05-04 6 views
0

httpコードで例外をスローしないhttpwebrequestのような同様のライブラリやクラスを探しています。 (c#言語) httpwebrequestの問題は、httpエラーコード(401,403など)が例外として動作し、これらの場合に例外をスローすることです。あなたは例外投げや処理が高価であることを知っているかもしれません。例えば、成功したリクエストは私のシステムで約30ミリ秒かかりますが、例外を引き起こす別のリクエストには約250秒かかります! このHTTPエラーコードの原因となるリクエストがたくさんあり、コードパフォーマンスに大きな影響を与えます。 私はwebclient、webrequest、httpclientを試してみましたが、これはすべて同じです。httpwebrequestに似ているが例外をスローしないwebrequestを行うC#ライブラリ

代替ライブラリに関する意見や、これらの例外を回避する方法はありますか?

+0

http://restsharp.org/多分? – Webbanditten

+0

私は 'HttpClient'は例外をスローしないと思います。それはとにかく新しい実装です。しかし、私は例外はそれらを気にするWeb要求のそのような高価な部分だとは思わない。 – NtFreX

+1

多くの例外をスローしているコードがあれば、これは例外であるという私の個人的な問題のようなものです。*もっと良い解決策は、多くの例外を投げないようにデータを再処理することです。あなたが処理するすべての例外に対して、例外をスローしないようにシステムを再構築したときに、パフォーマンスをそれほど低下させているからです。 –

答えて

1

HttpClient.GetAsync()は400レベルのエラーで例外をスローしません。 「ネットワーク接続、DNS障害、サーバー証明書の検証、タイムアウトなどの根本的な問題」については例外がスローされます。

また、生成するHttpReponseMessageには、便利なIsSuccessStatusCodeプロパティがあります。

0

チェックアウトRestSharp。ウェブリクエストを作成するための素晴らしいツールです

関連する問題