zoukankan      html  css  js  c++  java
  • C#模拟httpwebrequest请求_向服务器模拟cookie发送

    使用C#代码模拟web请求,是一种常用的方法,以前没专门整理过,这里暂时贴上自己整理的完整代码,以后再做梳理:

    public class MyRequest
        {
            #region 辅助方法
            public static string HttpGet(string url)
            {
                var request = (HttpWebRequest)WebRequest.Create(url);
    
                var response = (HttpWebResponse)request.GetResponse();
                var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
                return responseString;
            }
            /// <summary>
            /// httpPost请求--参数为object
            /// </summary>
            /// <param name="url">地址</param>
            /// <param name="postObject">Post参数传输为对象</param>
            /// <returns></returns>
            public static string HttpPost(string url, object postObject, string at = "", string rt = "")
            {
                string result = string.Empty;
    
                try
                {
                    var request = (HttpWebRequest)WebRequest.Create(url);
                    var postData = JsonConvert.SerializeObject(postObject);
    
                    var data = Encoding.UTF8.GetBytes(postData);  //uft-8支持中文
                    request.Method = "POST";
                    //request.ContentType = "application/x-www-form-urlencoded";
                    request.ContentType = "application/json;charset=UTF-8";
                    //request.ContentLength = data.Length;
    
                    //这里使用了coolie容器,用来模拟向服务器发送cookie信息
                    CookieContainer zl_Cookie = new CookieContainer();
                    zl_Cookie.Add(new Cookie("at", at, "/", ".zhaopin.com"));
                    zl_Cookie.Add(new Cookie("rt", rt, "/", ".zhaopin.com"));
                    request.CookieContainer = zl_Cookie;
                    
                    using (var stream = request.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }
    
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
                    result = new StreamReader(response.GetResponseStream()).ReadToEnd();
                }
                catch (Exception ex)
                {
                    result = ex.Message;
                }
                //Console.WriteLine("发送消息结果:" + result);
                return result;
            }
            /// <summary>
            /// httpPost请求--参数为string
            /// </summary>
            /// <param name="url">地址</param>
            /// <param name="postString">post参数参数为字符串</param>
            /// <returns></returns>
            public static string HttpPost(string url, string postString)
            {
                string result = string.Empty;
    
                try
                {
                    var request = (HttpWebRequest)WebRequest.Create(url);
    
                    var data = Encoding.UTF8.GetBytes(postString);  //uft-8支持中文
                    request.Method = "POST";
                    //request.ContentType = "application/x-www-form-urlencoded";
                    request.ContentType = "application/json;charset=UTF-8";
                    request.ContentLength = data.Length;
    
                    using (var stream = request.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }
    
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    
                    result = new StreamReader(response.GetResponseStream()).ReadToEnd();
                }
                catch (Exception ex)
                {
                    result = ex.Message;
                    Console.WriteLine("同步签到大屏发送消息error:" + result);
                }
    
                return result;
            }
            #endregion
    
        }
  • 相关阅读:
    Python(调用函数、定义函数)
    Python(可变/不可变类型,list,tuple,dict,set)
    Python(变量、数据类型)
    java内存泄露
    java垃圾回收
    mac下安装mysql教程
    Http、Https请求工具类
    ThreadLocal内部机制及使用方法
    java单例模式详解
    (转)Java集合框架:HashMap
  • 原文地址:https://www.cnblogs.com/lxhbky/p/8372442.html
Copyright © 2011-2022 走看看