C# HttpRequest

  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重复
详细:" + ex.Message);
127             }
128         }
129     }
130 }
原文地址:https://www.cnblogs.com/-wangjiannan/p/3519131.html