admin
2020-06-20 9cd218f0bebc19b86efeca2b33abe3adf093990c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Web;
 
namespace WindowsFormsApp1.utils
{
    class HttpUtil
    {
        static CookieContainer cookieContainer = new CookieContainer();
        //Get网络请求
        public static string HttpGet(String url, Dictionary<String,String> headerMap) {
            string retString = string.Empty;
 
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.Method = "GET";
            request.Timeout = 60000;
            //设置代理
            WebProxy proxy = new WebProxy();
            proxy.Address = new Uri("http://192.168.1.122:8888");
            request.Proxy = proxy;
            WebHeaderCollection headers = request.Headers;
            if (headerMap != null)
            {
                foreach (KeyValuePair<string, string> kvp in headerMap)
                {
                    headers.Add(kvp.Key + ":" + kvp.Value);
                }
            }
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader streamReader = new StreamReader(myResponseStream);
            retString = streamReader.ReadToEnd();
            streamReader.Close();
            myResponseStream.Close();
            return retString;
        }
 
 
        public static Stream HttpGetImage(String url)
        {
            string retString = string.Empty;
 
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.CookieContainer = cookieContainer;
            request.Method = "GET";
            request.Timeout = 60000;
            //设置代理
            WebProxy proxy = new WebProxy();
            proxy.Address = new Uri("http://192.168.1.122:8888");
            request.Proxy = proxy;
            WebHeaderCollection headers = request.Headers;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            return myResponseStream;
        }
 
        //POST网络请求
        public static string HttpPost(String url, Dictionary<String, String> paramsMap,Dictionary<String, String> headerMap) {
            string retString = string.Empty;
 
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
            request.CookieContainer = cookieContainer;
            request.Method = "POST";
            request.Timeout = 60000;
            request.ContentType = "application/x-www-form-urlencoded";
            //设置代理
            WebProxy proxy = new WebProxy();
            proxy.Address = new Uri("http://192.168.1.122:8888");
            request.Proxy = proxy;
            WebHeaderCollection headers = request.Headers;
            if (headerMap != null)
            {
                foreach (KeyValuePair<string, string> kvp in headerMap)
                {
                    headers.Add(kvp.Key + ":" + kvp.Value);
                }
            }
            if (paramsMap != null) {
                StringBuilder buffer = new StringBuilder();
                foreach (KeyValuePair<string, string> kvp in paramsMap)
                {
                    buffer.AppendFormat("&{0}={1}", kvp.Key, UrlEncode(kvp.Value));
                }
 
                if (buffer.ToString().StartsWith("&"))
                    buffer.Remove(0,1);
                Encoding encoding = Encoding.UTF8;
                byte[] postData = encoding.GetBytes(buffer.ToString()); 
                request.ContentLength = postData.Length;
                Stream requestStream = request.GetRequestStream();
                requestStream.Write(postData, 0, postData.Length);
            }
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream myResponseStream = response.GetResponseStream();
            StreamReader streamReader = new StreamReader(myResponseStream);
            retString = streamReader.ReadToEnd();
            streamReader.Close();
            myResponseStream.Close();
            return retString;
        }
 
 
        public static string UrlEncode(string str){
         return   HttpUtility.UrlEncode(str);
                  //   StringBuilder sb = new StringBuilder();
                //byte[] byStr = System.Text.Encoding.UTF8.GetBytes(str);
                //for (int i = 0; i < byStr.Length; i++)
                //{
                //    sb.Append(@"%" + Convert.ToString(byStr[i], 16));
               // }
               // return (sb.ToString());
        }
    
    }
}