好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

实例详解C#实现http不同方法的请求

1、不带参数的POST请求

?

public static string Post( string url)

{

   string result = "" ;

   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

   req.Method = "POST" ;

   HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

   Stream stream = resp.GetResponseStream();

   //获取内容

   using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))

   {

     result = reader.ReadToEnd();

   }

   return result;

}

2、带参数的POST请求

?

public static string Post( string url,Dictionary< string , string > dic)

{

   string result = "" ;

   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

   req.Method = "POST" ;

   req.ContentType = "application/x-www-form-urlencoded" ;

   #region 添加Post 参数

   StringBuilder builder = new StringBuilder();

   int i = 0;

   foreach (var item in dic)

   {

     if (i > 0)

       builder.Append( "&" );

     builder.AppendFormat( "{0}={1}" , item.Key, item.Value);

     i++;

   }

   byte [] data = Encoding.UTF8.GetBytes(builder.ToString());

   req.ContentLength = data.Length;

   using (Stream reqStream = req.GetRequestStream())

   {

     reqStream.Write(data, 0, data.Length);

     reqStream.Close();

   }

   #endregion

   HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

   Stream stream = resp.GetResponseStream();

   //获取响应内容

   using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))

   {

     result = reader.ReadToEnd();

   }

   return result;

}

3、不带参数的GET请求

?

public static string Get( string url)

{

   string result = "" ;

   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

   HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

   Stream stream = resp.GetResponseStream();

   try

   {

     //获取内容

     using (StreamReader reader = new StreamReader(stream))

     {

       result = reader.ReadToEnd();

     }

   }

   finally

   {

     stream.Close();

   }

   return result;

}

4、带参数的GET请求

?

public static string Get( string url, Dictionary< string , string > dic)

{

   string result = "" ;

   StringBuilder builder = new StringBuilder();

   builder.Append(url);

   if (dic.Count > 0)

   {

     builder.Append( "?" );

     int i = 0;

     foreach (var item in dic)

     {

       if (i > 0)

         builder.Append( "&" );

       builder.AppendFormat( "{0}={1}" , item.Key, item.Value);

       i++;

     }

   }

   HttpWebRequest req = (HttpWebRequest)WebRequest.Create(builder.ToString());

   //添加参数

   HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

   Stream stream = resp.GetResponseStream();

   try

   {

     //获取内容

     using (StreamReader reader = new StreamReader(stream))

     {

       result = reader.ReadToEnd();

     }

   }

   finally

   {

     stream.Close();

   }

   return result;

}

5、自定义HTTP请求头

?

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);

req.Method = "GET" ;

req.Headers[ "Accept-Language" ] = "zh-CN,zh;q=0.8" ;

req.Referer = "https://HdhCmsTestbaidu测试数据/" ;

HttpWebResponse resp = (HttpWebResponse)req.GetResponse();

Stream stream = resp.GetResponseStream(); string result = "" ; //注意,此处使用的编码是:gb2312 //using (StreamReader reader = new StreamReader(stream, Encoding.Default)) using (StreamReader reader = new StreamReader(stream, Encoding.GetEncoding("gb2312")))

{

   result = reader.ReadToEnd();

}

原文链接:https://blog.csdn.net/xishining/article/details/80809747

dy("nrwz");

查看更多关于实例详解C#实现http不同方法的请求的详细内容...

  阅读:52次