• 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://www.baidu.com/";  
    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();  
    }  


  • 相关阅读:
    ASP.NET获取POST提交过来的数据流,转换成Json格式的字符串
    Lambda表达式遍历和泛型ForEach遍历方式
    asp.net动态加载程序集创建指定类的实例及调用指定方法
    解答VS2013编译报错不准确是什么原因
    Sql Server常用数据库函数小结
    如何往有自增标识字段的表插入数据时,同时给自增标识字段插入值呢,在Inset Into语句前后加上SQL语句:SET IDENTITY_INSERT TableName ON和SET IDENTITY_INSERT TableName OFF
    ASP.NET代码调用SQL Server带DateTime类型参数的存储过程抛出异常问题
    关于Asp.net事件,如何在触发子控件的事件时,同步触发父页面的事件
    02Modify.ashx(修改班级信息)
    01List.ashx(班级列表动态页面)
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12352131.html
Copyright © 2020-2023  润新知