111,097
社区成员




/// <summary>
/// HttpClient类库测试
/// </summary>
/// <param name="proxy"></param>
void HttpClientTest(string proxy) {
try {
using (HttpClientHandler handler = new HttpClientHandler()) {
if (!string.IsNullOrEmpty(proxy)) {//判断代码参数是否为空
handler.UseProxy = true;
handler.Proxy = new WebProxy(proxy);//不为空则设置代理
}
using (HttpClient http = new HttpClient(handler)) {
using (HttpResponseMessage response = http.GetAsync("https://www.baidu.com").Result) {//向服务端发送请求
Console.WriteLine($"HttpClient 状态码:{response.StatusCode}");
string result = response.Content.ReadAsStringAsync().Result;//读取响应内容
}
}
}
} catch (Exception e) {
Console.WriteLine($"HttpClientTest 异常消息:{e.Message}");
}
}
/// <summary>
/// HttpWebRequest类库测试
/// </summary>
/// <param name="proxy"></param>
void HttpWebRequestTest(string proxy) {
try {
HttpWebRequest http = WebRequest.CreateHttp("https://www.baidu.com");
http.Method = "GET";
if (!string.IsNullOrEmpty(proxy)) {
http.Proxy = new WebProxy(proxy);
}
http.KeepAlive = false;//只要不将KeepAlive设置为False,内部就会维护连接池
using (HttpWebResponse response = http.GetResponse() as HttpWebResponse) {
Console.WriteLine($"HttpWebRequest 状态码:{response.StatusCode}");
using (StreamReader reader = new StreamReader(response.GetResponseStream())) {//获取响应流
string result = reader.ReadToEnd();//读取响应内容
}
}
} catch (Exception ex) {
Console.WriteLine($"HttpWebRequest 异常消息:{ex.Message}");
}
}
private void Button_HttpWebRequestTest_Click(object sender, EventArgs e) {
new Action(() => {
for (int i = 0; i < 2000; i++) {
HttpWebRequestTest("127.0.0.1:8888");//设置代理,使Fiddler能够看到协议流程
}
}).BeginInvoke(null, null);
}
private void Button_HttpClientTest_Click(object sender, EventArgs e) {
new Action(() => {
for (int i = 0; i < 2000; i++) {
HttpClientTest("127.0.0.1:8888");
}
}).BeginInvoke(null, null);
}