• c#发送简单的post、get请求


    • POST发送请求及接受响应流程 
    1. 根据目标地址址创建HttpWebRequest对象
    2. 设置响应的请求参数------Method、ContentType 等
    3. 使用HttpWebRequest对象获取请求流并且写入消息体   
    4. 使用HttpWebRequest对象获取响应流并读取流中数据(在获取过程中就是发送请求并接受响应)
    • GET发送请求及接受响应流程
    1. 把目标地址和查询字符串拼接在一起(如果有查询字符串)使用拼接的字符串创建HttpWebRequest对象
    2. 设置响应的请求参数------Method、ContentType 等
    3. 使用HttpWebRequest对象获取响应流并读取流中数据(在获取过程中就是发送请求并接受响应)

       以下为代码:

            两个请求方法 和读取方法

            /// <summary>
            /// 发送http post请求
            /// </summary>
            /// <param name="url">地址</param>
            /// <param name="parameters">查询参数集合</param>
            /// <returns></returns>
            public HttpWebResponse CreatePostHttpResponse(string url, IDictionary<string, string> parameters)
            {
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;//创建请求对象
                request.Method = "POST";//请求方式
                request.ContentType = "application/x-www-form-urlencoded";//链接类型
                //构造查询字符串
                if (!(parameters == null || parameters.Count == 0))
                {
                    StringBuilder buffer = new StringBuilder();
                    bool first = true;
                    foreach (string key in parameters.Keys)
                    {
    
                        if (!first)
                        {
                            buffer.AppendFormat("&{0}={1}", key, parameters[key]);
                        }
                        else
                        {
                            buffer.AppendFormat("{0}={1}", key, parameters[key]);
                            first = false;
                        }
                    }
                    byte[] data = Encoding.UTF8.GetBytes(buffer.ToString());
                    //写入请求流
                    using (Stream stream = request.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }
                }
                return request.GetResponse() as HttpWebResponse;
            }
            /// <summary>
            /// 发送http Get请求
            /// </summary>
            /// <param name="url"></param>
            /// <returns></returns>
            public static HttpWebResponse CreateGetHttpResponse(string url)
            {
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                request.Method = "GET";
                request.ContentType = "application/x-www-form-urlencoded";//链接类型
                return request.GetResponse() as HttpWebResponse;
            }
            /// <summary>
            /// 从HttpWebResponse对象中提取响应的数据转换为字符串
            /// </summary>
            /// <param name="webresponse"></param>
            /// <returns></returns>
            public string GetResponseString(HttpWebResponse webresponse)
            {
                using (Stream s = webresponse.GetResponseStream())
                {
                    StreamReader reader = new StreamReader(s, Encoding.UTF8);
                    return reader.ReadToEnd();
                }
            }
    

      调用

    //post请求并调用
    
    Dictionary<string, string> dic = new Dictionary<string, string>();
    dic.Add("id", "4");
    textBox1.Text = GetResponseString(CreatePostHttpResponse("https://www.baidu.com/", dic));
    //get请求并调用
    
    textBox3.Text = GetResponseString(CreateGetHttpResponse("https://i.cnblogs.com/EditPosts.aspx?opt=1"));
    

      

           

  • 相关阅读:
    SpringBoot快速入门(三)
    分布式解决方案
    计算机网络-自顶向下方法第六章
    计算机网络-自顶向下方法第四章
    springcloud记录
    计算机网络-自顶向下方法第三章
    springboot整合kafka
    计算机网络-自顶向下方法第二章
    计算机网络-自顶向下方法第一章
    Spring常用注解【经典总结】
  • 原文地址:https://www.cnblogs.com/cyh1282656849/p/7486262.html
Copyright © 2020-2023  润新知