• C# HttpWebRequest 添加Cookie验证


    public static void Post3()
    {
    CookieContainer cookies = new CookieContainer();

    string RequestPara = "account=win&password=123";
    RequestPara = Regex.Replace(RequestPara, "%", "%25");
    byte[] buf = System.Text.Encoding.GetEncoding("utf-8").GetBytes(RequestPara);

    string url = "http:";
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    myHttpWebRequest.Method = "POST";
    myHttpWebRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
    myHttpWebRequest.ContentLength = buf.Length;
    myHttpWebRequest.Timeout = 20 * 1000; //连接超时
    myHttpWebRequest.Accept = "*/*";
    myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;)";
    myHttpWebRequest.CookieContainer = new CookieContainer(); //暂存到新实例

    System.IO.Stream RequestStream = myHttpWebRequest.GetRequestStream();
    RequestStream.Write(buf, 0, buf.Length);
    RequestStream.Close();

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    cookies = myHttpWebRequest.CookieContainer; //保存cookies
    string cookiesstr = myHttpWebRequest.CookieContainer.GetCookieHeader(myHttpWebRequest.RequestUri); //把cookies转换成字符串

    Console.WriteLine(cookiesstr);

    //string data = "patient_name=测试"

    // + "&patient_gender="
    // + "&patient_sensibiligen="
    // + "&patient_address="
    // + "&patient_phone="
    // + "&idcard="
    // + "&doctor_rxnote_js="
    // + "&ans_id=" + ApplicationCOM.Uid
    // + "&patient_note="
    // + "&ds_sign_id=";
    //data = Regex.Replace(data, "%", "%25");
    //buf = System.Text.Encoding.GetEncoding("utf-8").GetBytes(data);

    url = "http:";
    myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    //myHttpWebRequest.Method = "POST";

    myHttpWebRequest.Method = "GET";

    myHttpWebRequest.ContentLength = buf.Length;
    myHttpWebRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
    myHttpWebRequest.Timeout = 20 * 1000; //连接超时
    myHttpWebRequest.Accept = "*/*";
    myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;)";
    myHttpWebRequest.Headers.Add("Cookie", cookiesstr);

    //RequestStream = myHttpWebRequest.GetRequestStream();
    //RequestStream.Write(buf, 0, buf.Length);
    //RequestStream.Close();

    myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();


    Stream stream = myHttpWebResponse.GetResponseStream();
    stream.ReadTimeout = 15 * 1000; //读取超时
    StreamReader sr = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
    string strWebData = sr.ReadToEnd();
    Console.WriteLine(strWebData);
    }

    /// <summary>
    /// WebHTTP工具类
    /// </summary>

    public class WebHTTPUtil
    {
    private static string cookiesstr;
    /// <summary>
    /// 登陆
    /// </summary>
    /// <param name="account"></param>
    /// <param name="password"></param>
    public static void SignIn(string account, string password)
    {
    CookieContainer cookies = new CookieContainer();

    string RequestPara = "account=" + account + "&password=" + password;
    RequestPara = Regex.Replace(RequestPara, "%", "%25");
    byte[] buf = System.Text.Encoding.GetEncoding("utf-8").GetBytes(RequestPara);

    string url = "http";
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    myHttpWebRequest.Method = "POST";
    myHttpWebRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
    myHttpWebRequest.ContentLength = buf.Length;
    myHttpWebRequest.Timeout = 20 * 1000; //连接超时
    myHttpWebRequest.Accept = "*/*";
    myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;)";
    myHttpWebRequest.CookieContainer = new CookieContainer(); //暂存到新实例

    System.IO.Stream RequestStream = myHttpWebRequest.GetRequestStream();
    RequestStream.Write(buf, 0, buf.Length);
    RequestStream.Close();

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    cookies = myHttpWebRequest.CookieContainer; //保存cookies
    cookiesstr = myHttpWebRequest.CookieContainer.GetCookieHeader(myHttpWebRequest.RequestUri); //把cookies转换成字符串

    }
    public static string POST(string url, string data)
    {
    data = Regex.Replace(data, "%", "%25");
    byte[] buf = System.Text.Encoding.GetEncoding("utf-8").GetBytes(data);

    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    myHttpWebRequest.Method = "POST";
    myHttpWebRequest.ContentLength = buf.Length;
    myHttpWebRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
    myHttpWebRequest.Timeout = 20 * 1000; //连接超时
    myHttpWebRequest.Accept = "*/*";
    myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;)";
    myHttpWebRequest.Headers.Add("Cookie", cookiesstr);

    System.IO.Stream RequestStream = myHttpWebRequest.GetRequestStream();
    RequestStream.Write(buf, 0, buf.Length);
    RequestStream.Close();

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    Stream stream = myHttpWebResponse.GetResponseStream();
    stream.ReadTimeout = 15 * 1000; //读取超时
    StreamReader sr = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
    string strWebData = sr.ReadToEnd();

    return strWebData;
    }
    public static string GET(string url)
    {
    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    myHttpWebRequest.Method = "GET";
    myHttpWebRequest.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
    myHttpWebRequest.Timeout = 20 * 1000; //连接超时
    myHttpWebRequest.Accept = "*/*";
    myHttpWebRequest.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;)";
    myHttpWebRequest.Headers.Add("Cookie", cookiesstr);

    HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
    Stream stream = myHttpWebResponse.GetResponseStream();
    stream.ReadTimeout = 15 * 1000; //读取超时
    StreamReader sr = new StreamReader(stream, Encoding.GetEncoding("utf-8"));
    string strWebData = sr.ReadToEnd();
    return strWebData;
    }

    }

  • 相关阅读:
    InfluxDB简单用法
    tcpdump用法
    MySQL 数据库设计规范(二)
    MySQL数据库规范(一)
    ICP问题求解SVD方法
    三角化求3D坐标
    mysql的几个timeout参数
    mybatisconfig
    mysql 连接的回收
    接口性能P99,P95计算
  • 原文地址:https://www.cnblogs.com/-jingzhe/p/13747894.html
Copyright © 2020-2023  润新知