创建HttpRequest传输数据

本文详细介绍使用C#进行HTTP请求处理的方法,包括POST和GET请求的实现细节,以及如何利用Cookie容器进行会话管理。文章提供了完整的代码示例,展示了如何创建请求、设置请求头、发送数据并接收响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

ExpandedBlockStart.gif代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Net;

namespace Bookmark.HttpAPI
{
    
public class WebRequestAPI
    {
        
private static CookieContainer cookie=new CookieContainer ();


        
#region 同步通过POST方式发送数据
        
/// <summary>
        
/// 通过POST方式发送数据
        
/// </summary>
        
/// <param name="Url">url</param>
        
/// <param name="postDataStr">Post数据</param>
        
/// <param name="cookie">Cookie容器</param>
        
/// <returns></returns>
        public static string SendDataByPost(string Url, string postDataStr)
        {
            HttpWebRequest request 
= (HttpWebRequest)WebRequest.Create(Url);
            
if (cookie.Count == 0)
            {
                request.CookieContainer 
= new CookieContainer();
                cookie 
= request.CookieContainer;
            }
            
else
            {
                request.CookieContainer 
= cookie;
            }

            request.Method 
= "POST";
            request.ContentType 
= "application/x-www-form-urlencoded";
            request.ContentLength 
= postDataStr.Length;
            Stream myRequestStream 
= request.GetRequestStream();
            StreamWriter myStreamWriter 
= new StreamWriter(myRequestStream, Encoding.GetEncoding("gb2312"));
            myStreamWriter.Write(postDataStr);
            myStreamWriter.Close();

            HttpWebResponse response 
= (HttpWebResponse)request.GetResponse();
            Stream myResponseStream 
= response.GetResponseStream();
            StreamReader myStreamReader 
= new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            
string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

            
return retString;
        }
        
#endregion

        
#region 同步通过GET方式发送数据
        
/// <summary>
        
/// 通过GET方式发送数据
        
/// </summary>
        
/// <param name="Url">url</param>
        
/// <param name="postDataStr">GET数据</param>
        
/// <param name="cookie">GET容器</param>
        
/// <returns></returns>
        public static string SendDataByGET(string Url, string postDataStr)
        {
            HttpWebRequest request 
= (HttpWebRequest)WebRequest.Create(Url + (postDataStr == "" ? "" : "?"+ postDataStr);
            
if (cookie.Count == 0)
            {
                request.CookieContainer 
= new CookieContainer();
                cookie 
= request.CookieContainer;
            }
            
else
            {
                request.CookieContainer 
= cookie;
            }

            request.Method 
= "GET";
            request.ContentType 
= "text/html;charset=UTF-8";

            HttpWebResponse response 
= (HttpWebResponse)request.GetResponse();
            Stream myResponseStream 
= response.GetResponseStream();
            StreamReader myStreamReader 
= new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
            
string retString = myStreamReader.ReadToEnd();
            myStreamReader.Close();
            myResponseStream.Close();

            
return retString;
        }
        
#endregion
    }
}

 

 

转载于:https://www.cnblogs.com/hubcarl/archive/2010/05/11/1732492.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值