WebサイトにHTTP呼び出しを行いたいと思いました。 URLにアクセスするだけで、データをアップロードまたはダウンロードしたくありません。それを行う最も簡単で最速の方法は何ですか。
私はコードの下で試してみましたが、その速度は遅く、2回目の繰り返し要求の後、59秒のタイムアウトになり、再開します:
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();
WebClientの使用はより効率的ですか?
WebClient web = new WebClient();
web.UploadString(address);
.NET ver 3.5を使用しています
あなたが本当にウェブサイトに電話をかけようとしているなら、あなたはそこにいくつかの余分なものを持っています。必要なものは次のとおりです。
WebRequest webRequest = WebRequest.Create("http://ussbazesspre004:9002/DREADD?" + fileName);
WebResponse webResp = webRequest.GetResponse();
応答を待ちたくない場合は、 BeginGetResponse を見て非同期にすることができます。
データをアップロードしたくない場合は、以下を使用する必要があります。
_webRequest.Method = "GET";
_
データを取り戻すことに本当に関心がない場合(たとえば、ページが使用可能かどうかを確認するだけの場合)は、次を使用します。
_webRequest.Method = "HEAD";
_
いずれの場合も、webRequest.GetRequestStream()
の代わりに以下を使用します。
_WebResponse myWebResponse = webRequest.GetResponse();
_
WebClientはより短く、より簡潔な構文ですが、裏ではWebRequestを使用するため、パフォーマンスの観点からは高速ではなく、同等です。より高速にしたい場合は、サーバー側のスクリプトまたはネットワークインフラストラクチャを改善する必要があります。問題はクライアント側ではありません。