C# - 如何进行HTTP调用

May*_*r J 28 c# webclient http 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();
Run Code Online (Sandbox Code Playgroud)

使用WebClient更有效率吗?

WebClient web = new WebClient();
web.UploadString(address);
Run Code Online (Sandbox Code Playgroud)

我正在使用.NET ver 3.5

Doo*_*ake 50

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

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

如果您不想等待响应,可以查看BeginGetResponse以使其异步.


Way*_*inn 11

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

webRequest.Method = "GET";
Run Code Online (Sandbox Code Playgroud)

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

webRequest.Method = "HEAD";
Run Code Online (Sandbox Code Playgroud)

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

WebResponse myWebResponse = webRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)


Dar*_*rov 6

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