• 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;
    }

    }

  • 相关阅读:
    学习笔记—查找
    水晶报表图表制作问题
    Chrome对最小字体的限制
    Devexpress的ASPxDateEdit控件设置其‘today’ 为客户端当前日期
    水晶报表多表数据源
    System.Web.HttpValueCollection.ThrowIfMaxHttpCollectionKeysExceeded
    利用水晶报表制作甘特图
    水晶报表打印时最后多打印一空白页
    day3学习
    Python高级自动化培训day1
  • 原文地址:https://www.cnblogs.com/-jingzhe/p/13747894.html
Copyright © 2020-2023  润新知