开发者

C# - How to make a HTTP call

I wanted to make an HTTP call to a website. I just need to hit the URL and dont want to upload or download any data. What is the easiest and fastest way to do it.

I tried below code but its slow and after 2nd repetitive request it just goes into timeout for 59 secounds and than resume:

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();

Is us开发者_JS百科ing the WebClient more efficient??

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

I am using .NET ver 3.5


You've got some extra stuff in there if you're really just trying to call a website. All you should need is:

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

If you don't want to wait for a response, you may look at BeginGetResponse to make it asynchronous .


If you don't want to upload any data you should use:

webRequest.Method = "GET";

If you really don't care about getting any data back (for instance if you just want to check to see if the page is available) use:

webRequest.Method = "HEAD";

In either case, instead of webRequest.GetRequestStream() use:

WebResponse myWebResponse = webRequest.GetResponse();


WebClient is a shorter and more concise syntax but behind the scenes it uses a WebRequest, so in terms of performance it won't be faster, it will be equivalent. If you want it to be faster you will have to improve the server side script or your network infrastructure. The problem is not on the client side.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜