C# http请求相关的函数 HttpWebRequest: Post , Get ; PostAndRedirect

1、 通过HttpWebRequest发起一个Post请求,并获取返回数据

C# http请求相关的函数 HttpWebRequest: Post , Get ; PostAndRedirect
 1 使用指定编码格式发送一个POST请求,并通过约定的编码格式获取返回的数据 
 2 
 3 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->
 4     /// <summary>
 5     /// 使用指定编码格式发送一个POST请求,并通过约定的编码格式获取返回的数据
 6     /// </summary>
 7     /// <param name="url">请求的url地址</param>
 8     /// <param name="parameters">请求的参数集合</param>
 9     /// <param name="reqencode">请求的编码格式</param>
10     /// <param name="resencode">接收的编码格式</param>
11     /// <returns></returns>
12     public static string SendPostRequest(string url, NameValueCollection parameters, Encoding reqencode, Encoding resencode)
13     {
14         HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
15         req.Method = "post";
16         req.ContentType = "application/x-www-form-urlencoded";
17 
18         StringBuilder parassb = new StringBuilder();
19         foreach (string key in parameters.Keys)
20         {
21             if (parassb.Length > 0)
22                 parassb.Append("&");
23             parassb.AppendFormat("{0}={1}", key, parameters[key]);
24         }
25         byte[] data = reqencode.GetBytes(parassb.ToString());
26         Stream reqstream = req.GetRequestStream();
27         reqstream.Write(data, 0, data.Length);
28         reqstream.Close();
29         string result = String.Empty;
30         using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream(), resencode))
31         {
32             result = reader.ReadToEnd();
33         }
34         return result;
35     }
View Code

2、通过HttpWebRequest发起一个Get请求,并获取返回数据

C# http请求相关的函数 HttpWebRequest: Post , Get ; PostAndRedirect
 1 HttpWebRequest 发送一个GET请求 
 2 
 3 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->
 4 
 5     /*
 6      * 需要引用如下namespace
 7      * using System.Reflection;
 8      * using System.Text;
 9      * using System.Net;
10      * using System.IO;
11      */
12 
13     /// <summary>
14     /// HttpWebRequest 发送一个GET请求
15     /// </summary>
16     /// <param name="url">请求的url地址</param>
17     /// <param name="parameters">请求的参数集合</param>
18     /// <param name="reqencode">请求的编码格式</param>
19     /// <param name="resencode">接收的编码格式</param>
20     /// <returns></returns>
21     public static string SendGetRequest(string baseurl, NameValueCollection parameters, Encoding reqencode, Encoding resencode)
22     {
23         StringBuilder parassb = new StringBuilder();
24         foreach (string key in parameters.Keys)
25         {
26             if (parassb.Length > 0)
27                 parassb.Append("&");
28             parassb.AppendFormat("{0}={1}", HttpUtility.UrlEncode(key, reqencode), HttpUtility.UrlEncode(parameters[key], reqencode));
29         }
30 
31         if (parassb.Length > 0)
32         {
33             baseurl += "?" + parassb;
34         }
35         HttpWebRequest req = (HttpWebRequest)WebRequest.Create(baseurl);
36         req.Method = "GET";
37         req.MaximumAutomaticRedirections = 3;
38         req.Timeout = 5000;
39 
40         string result = String.Empty;
41         using (StreamReader reader = new StreamReader(req.GetResponse().GetResponseStream(), resencode))
42         {
43             result = reader.ReadToEnd();
44         }
45         return result;
46     }
View Code

3、通过编程的方式实现Post提交请求并重定向至新的URL地址

C# http请求相关的函数 HttpWebRequest: Post , Get ; PostAndRedirect
 1 Post请求并且重定向 
 2 
 3 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->
 4     /// <summary>
 5     /// Post请求并且重定向
 6     /// </summary>
 7     /// <param name="url"></param>
 8     /// <param name="parameters"></param>
 9     /// <param name="context"></param>
10     public static void PostAndRedirect(string url, NameValueCollection parameters, HttpContext context)
11     {
12         StringBuilder script = new StringBuilder();
13         script.AppendFormat("<form name=redirpostform action=‘{0}‘ method=‘post‘>", url);
14         foreach (string key in parameters.Keys)
15         {
16             script.AppendFormat("<input type=‘hidden‘ name=‘{0}‘ value=‘{1}‘>",
17                 key, parameters[key]);
18         }
19         script.Append("</form>");
20         script.Append("<script language=‘javascript‘>redirpostform.submit();</script>");
21         context.Response.Write(script);
22         context.Response.End();
23     }
View Code

感谢:http://www.cnblogs.com/didi/archive/2010/06/03/1750723.html

C# http请求相关的函数 HttpWebRequest: Post , Get ; PostAndRedirect

上一篇:rfc2818 --- HTTP Over TLS


下一篇:win7下xampp的php_mongo扩展无法加载的问题