zoukankan      html  css  js  c++  java
  • C# http请求相关的函数 HttpWebRequest: Post , Get ; PostAndRedirect

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

     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请求,并获取返回数据

     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地址

     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

  • 相关阅读:
    桟错误分析方法
    gstreamer调试命令
    sqlite的事务和锁,很透彻的讲解 【转】
    严重: Exception starting filter struts2 java.lang.NullPointerException (转载)
    eclipse 快捷键
    POJ 1099 Square Ice
    HDU 1013 Digital Roots
    HDU 1087 Super Jumping! Jumping! Jumping!(动态规划)
    HDU 1159 Common Subsequence
    HDU 1069 Monkey and Banana(动态规划)
  • 原文地址:https://www.cnblogs.com/lewisli/p/4129012.html
Copyright © 2011-2022 走看看