2011-10-07 4 views
22

私はWebサイトにHTTP呼び出しを行いたいと思っていました。私はちょうどURLをヒットする必要がありますアップロードしたり、任意のデータをダウンロードしたくない。それを行う最も簡単で最速の方法は何ですか?C# - HTTP呼び出しを行う方法

私はコードの下にしようとしたが、その遅いと第二繰り返し要求した後、それだけで59 secoundsためと再開よりもタイムアウトに入る:

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName); 
webRequest.Method = "POST"; 
webRequest.ContentType = "application/x-www-form-urlencoded"; 
webRequest.ContentLength = fileName.Length; 

Stream os = webRequest.GetRequestStream(); 
os.Write(buffer, 0, buffer.Length); 
os.Close(); 

は、より効率的なWebクライアントを使用しています?

webRequest.Method = "GET"; 

あなたが本当に任意のデータを得ることについて気にしない場合:あなたが使用する必要があるすべてのデータをアップロードしたくない場合は、私は3.5

+0

"WebClientをより効率的に使用していますか?"何があなたを止めさせたのですか? –

答えて

40

実際にウェブサイトに電話をかけようとしていると、余分なものがあります。あなたが必要とする必要があるすべては、次のとおりです。

WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName); 
WebResponse webResp = webRequest.GetResponse(); 

あなたが応答を待つしたくない場合、あなたはそれを非同期にするためにBeginGetResponseを見てもよいです。

9

のver .NETを使用しています

WebClient web = new WebClient(); 
web.UploadString(address); 

たとえば、ページが利用可能かどうかを確認する場合は、次のようにします。

webRequest.Method = "HEAD"; 

いずれの場合もwebRequest.GetRequestStream()使用の:パフォーマンスの面で、それは速くなりませんので、それは同等になります、

WebResponse myWebResponse = webRequest.GetResponse(); 
5

Webクライアントが短く、より簡潔な構文ですが、舞台裏ではWebRequestクラスを使用しています。より高速にしたい場合は、サーバー側スクリプトまたはネットワークインフラストラクチャを改善する必要があります。問題はクライアント側ではありません。

+1

特にHEAD HTTPメソッドを使用すると、要求されるファイルが大きい場合にパフォーマンスを向上させることができます。しかし、私の推測では、本当の問題は他の場所にあるということです。 –

関連する問題