1 using System;
2 using System.Collections;
3 using System.Collections.Generic;
4 using System.IO;
5 using System.Linq;
6 using System.Net;
7 using System.Security.Policy;
8 using System.Text;
9 using BDIC_BASE.Bonc.UI.Util;
10
11 namespace BDIC_BASE.Bonc.DAL
12 {
13 public class HttpRequest
14 {
15 public static string DoPost(string url, Hashtable paramsOfUrl)
16 {
17 if (url == null)
18 {
19 throw new Exception("url 为空");
20 //return "";
21 }
22 // 编辑并Encoding提交的数据
23 byte[] data = GetJointBOfParams(paramsOfUrl);
24
25 // 发送请求
26 System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
27 request.Method = "POST";
28 request.ContentType = "application/x-www-form-urlencoded";
29 request.ContentLength = data.Length;
30
31 Stream stream = request.GetRequestStream();
32 stream.Write(data, 0, data.Length);
33 stream.Close();
34
35 // 获得回复
36 System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
37 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
38 string result = reader.ReadToEnd();
39 reader.Close();
40
41 return result;
42 }
43
44 public static string DoGet(string url, Hashtable paramsOfUrl)
45 {
46 if (url == null)
47 {
48 throw new Exception("url 为空");
49 //return "";
50 }
51 // 编辑并Encoding提交的数据
52 string data = GetJointSOfParams(paramsOfUrl);
53 // 拼接URL
54 url += "?" + data;
55
56 // 发送请求
57 System.Net.HttpWebRequest request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url);
58 request.Method = "GET";
59
60 // 获得回复
61 System.Net.HttpWebResponse response = (System.Net.HttpWebResponse)request.GetResponse();
62 StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
63 string result = reader.ReadToEnd();
64 reader.Close();
65
66 return result;
67 }
68
69 private static String GetJointSOfParams(Hashtable paramsOfUrl)
70 {
71 // 编辑并Encoding提交的数据
72 StringBuilder sbuilder = new StringBuilder();
73 int i = 0;
74 foreach (DictionaryEntry de in paramsOfUrl)
75 {
76 if (i == 0)
77 {
78 sbuilder.Append(de.Key + "=" + de.Value);
79 }
80 else
81 {
82 sbuilder.Append("&" + de.Key + "=" + de.Value);
83 }
84 }
85 return sbuilder.ToString();
86 }
87
88 private static byte[] GetJointBOfParams(Hashtable paramsOfUrl)
89 {
90 // 编辑并Encoding提交的数据
91 String stringJointOfParams = GetJointSOfParams(paramsOfUrl);
92 byte[] data = new ASCIIEncoding().GetBytes(stringJointOfParams);
93
94 return data;
95 }
96 }
97
98 public class HttpParam
99 {
100 public HttpParam()
101 {
102 }
103
104 private Hashtable _paramsOfUrl;
105 public Hashtable ParamsOfUrl
106 {
107 get
108 {
109 if (_paramsOfUrl == null)
110 {
111 _paramsOfUrl = Hashtable.Synchronized(new Hashtable());
112 }
113 return _paramsOfUrl;
114 }
115 set { _paramsOfUrl = value; }
116 }
117
118 public void AddParamOfUrl(String paramKey ,String paramValue)
119 {
120 try
121 {
122 ParamsOfUrl.Add(paramKey, paramValue);
123 }
124 catch (Exception ex)
125 {
126 Console.WriteLine("可能为key重复\n详细:" + ex.Message);
127 }
128 }
129 }
130 }