C# - 如何进行HTTP调用

时间:2011-10-07 14:02:57

标签: c# http webclient webrequest

我想对网站进行HTTP调用。我只需要点击URL,不想上传或下载任何数据。什么是最简单,最快捷的方式。

我尝试了下面的代码,但它的速度很慢,经过第二次重复请求后,它会进入超时状态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

3 个答案:

答案 0 :(得分:45)

如果您真的只是想打电话给网站,那么你还有一些额外的东西。你需要的只是:

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

如果您不想等待回复,可以查看BeginGetResponse以使其异步。

答案 1 :(得分:10)

如果您不想上传任何数据,请使用:

webRequest.Method = "GET";

如果您真的不关心获取任何数据(例如,如果您只是想查看该页面是否可用),请使用:

webRequest.Method = "HEAD";

在任何一种情况下,都不使用webRequest.GetRequestStream()

WebResponse myWebResponse = webRequest.GetResponse();

答案 2 :(得分:5)

WebClient是一种更简洁,更简洁的语法,但在幕后它使用WebRequest,因此在性能方面它不会更快,它将是等效的。如果您希望它更快,则必须改进服务器端脚本或网络基础结构。问题不在客户端。