using System; using System.Net; using System.Net.Http; using System.Collections.Generic; namespace ClientProxyDemo { class TestProxy { static void Main(string[] args) { String proxyServer = "http://xxx:xxx"; // http://host:port, 例(http://1.2.3.4:7777), host可以是域名或者ip,port是代理端口号 var proxy = new WebProxy(proxyServer); HttpClientHandler httpClientHandler = new HttpClientHandler() { Proxy = proxy }; //实例化请求类 var httpCient = new HttpClient(httpClientHandler); // 增加头部 httpCient.DefaultRequestHeaders.Add("Header-Key", "header-vaule"); //实例化代理测试类 TestProxy testProxy = new TestProxy(); //请求测试 testProxy.testGet(httpCient); // testProxy.testPost(httpCient); } // 测试get请求 public void testGet(HttpClient httpClient) { //定义连接 String targetUrl = "http://httpbin.org/get"; //执行方法 var httpResult = httpClient.GetStringAsync(targetUrl).Result; } // 测试post请求 public void testPost(HttpClient httpClient) { //定义连接 String targetUrl = "http://httpbin.org/post"; //实例化List List> formData = new List>(); //添加请求数据1 formData.Add(new KeyValuePair("key1", "vaule1")); //添加请求数据2 formData.Add(new KeyValuePair("key2", "vaule2")); //实例化 var formContent = new FormUrlEncodedContent(formData.ToArray()); //执行请求 var responseMsg = httpClient.PostAsync(targetUrl, formContent).Result; //获取结果 var httpResult = responseMsg.Content.ReadAsStringAsync().Result; } } }