• Windows Mobile CookieContainer


    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;

    namespace net.frejos.http
    {
    public class CookieManager
    {
    private Dictionary cookieValues;

    public Dictionary CookieValues {
    get {
    if (this.cookieValues == null) {
    this.cookieValues = new Dictionary();
    }

    return this.cookieValues;
    }
    }

    public void PublishCookies(HttpWebRequest webRequest)
    {
    StringBuilder sb = new StringBuilder();
    sb.Append("Cookie: ");
    foreach (string key in this.CookieValues.Keys) {
    sb.Append(key);
    sb.Append("=");
    sb.Append(this.CookieValues[key]);
    sb.Append("; ");
    sb.Append("$Path=\"/\"; ");
    }

    webRequest.Headers.Add(sb.ToString());
    sb = null;
    webRequest = null;
    }

    public void StoreCookies(HttpWebResponse webResponse)
    {
    for (int x=0; x < webResponse.Headers.Count; x++) {
    if (webResponse.Headers.Keys[x].ToLower().Equals("set-cookie")) {
    this.AddRawCookie( webResponse.Headers[x] );
    }
    }

    webResponse = null;
    }

    private void AddRawCookie(string rawCookieData)
    {
    string key = null;
    string value = null;

    string[] entries = null;

    if (rawCookieData.IndexOf(",") > 0)
    {
    entries = rawCookieData.Split(',');
    }
    else {
    entries = new string[] { rawCookieData };
    }

    foreach (string entry in entries) {
    string cookieData = entry.Trim();

    if (cookieData.IndexOf(';') > 0)
    {
    string[] temp = cookieData.Split(';');
    cookieData = temp[0];
    }

    int index = cookieData.IndexOf('=');
    if (index > 0)
    {
    key = cookieData.Substring(0, index);
    value = cookieData.Substring(index + 1);
    }

    if (key != null && value != null)
    {
    this.CookieValues[key] = value;
    }

    cookieData = null;
    }

    rawCookieData = null;
    entries = null;
    key = null;
    value = null;
    }

    public override string ToString()
    {
    StringBuilder sb = new StringBuilder();
    sb.Append("[");
    foreach (string key in this.CookieValues.Keys) {
    sb.Append("{");
    sb.Append(key);
    sb.Append(",");
    sb.Append(this.CookieValues[key]);
    sb.Append("}, ");
    }
    if (this.CookieValues.Keys.Count > 0)
    {
    sb.Remove(sb.Length - 2, 2);
    }
    sb.Append("]");

    return sb.ToString();
    }
    }
    }




    Here is a usage example:


    CookieManager cookieManager = new CookieManager();
    // Set a cookie value
    cookieManager.CookieValues["FavoriteCookie"] = "Chocolate Chip";

    HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
    // Publish the cookies to the request before asking for the response
    cookieManager.PublishCookies(webRequest);

    HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
    // Store any cookies returned from the response
    cookieManager.StoreCookies(webResponse);

    // Get the value of a cookie
    string session = cookieManager.CookieValues["SESSIONID"];

    webRequest = (HttpWebRequest)WebRequest.Create(url2);
    cookieManager.PublishCookies(webRequest);

    webResponse = (HttpWebResponse)webRequest.GetResponse();


  • 相关阅读:
    使用python,将excel数据批量导入数据库
    微信小程序开发之https服务器搭建三步曲
    微信小程序开发简易计算器改进版
    开发天气预报小程序
    微信(公众号、小程序)开发
    MVC--MVP?
    10大基础实用算法及其讲解
    初探Javascript魅力(1)
    新项目UX设计0到1的正确开启方式
    使用Postman模拟HTTP请求
  • 原文地址:https://www.cnblogs.com/jordan2009/p/1818319.html
Copyright © 2020-2023  润新知