using System; 
using System.Net; 
using System.IO; 
using System.Text;

// 
// TODO: 在此处添加代码以启动应用程序 
// 
string url="http://localhost/csdn2/1.asp"; 
// <% 
// if request("aa")="zhuye" then session("ok")="ok" 
// if session("ok")="ok" then 
// response.write("登录") 
// else 
// response.write("没有登录") 
// end if 
// %> 
string indata="aa=zhuye"; 
string outdata=""; 
CookieContainer myCookieContainer=new CookieContainer(); 
//新建一个CookieContainer来存放Cookie集合 
HttpWebRequest myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url); 
//新建一个HttpWebRequest 
myHttpWebRequest.ContentType="application/x-www-form-urlencoded"; 
myHttpWebRequest.ContentLength=indata.Length; 
myHttpWebRequest.Method="POST"; 
myHttpWebRequest.CookieContainer=myCookieContainer; 
//设置HttpWebRequest的CookieContainer为刚才建立的那个myCookieContainer 
Stream myRequestStream=myHttpWebRequest.GetRequestStream(); 
StreamWriter myStreamWriter=new StreamWriter(myRequestStream,Encoding.GetEncoding("gb2312")); 
myStreamWriter.Write(indata); 
//把数据写入HttpWebRequest的Request流 
myStreamWriter.Close(); 
myRequestStream.Close(); 
//关闭打开对象 
HttpWebResponse myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); 
//新建一个HttpWebResponse 
myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri); 
//获取一个包含url的Cookie集合的CookieCollection 
Stream myResponseStream=myHttpWebResponse.GetResponseStream(); 
StreamReader myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312")); 
outdata=myStreamReader.ReadToEnd(); 
//把数据从HttpWebResponse的Response流中读出 
myStreamReader.Close(); 
myResponseStream.Close(); 
Console.WriteLine(outdata); 
//显示"登录"

//拿到了Cookie,再进行请求就能直接读取到登录后的内容了 
myHttpWebRequest=(HttpWebRequest)WebRequest.Create(url); 
myHttpWebRequest.CookieContainer=myCookieContainer;//* 
//刚才那个CookieContainer已经存有了Cookie,把它附加到HttpWebRequest中则能直接通过验证 
myHttpWebResponse=(HttpWebResponse)myHttpWebRequest.GetResponse(); 
myHttpWebResponse.Cookies=myCookieContainer.GetCookies(myHttpWebRequest.RequestUri); 
myResponseStream=myHttpWebResponse.GetResponseStream(); 
myStreamReader=new StreamReader(myResponseStream,Encoding.GetEncoding("gb2312")); 
outdata=myStreamReader.ReadToEnd(); 
myStreamReader.Close(); 
myResponseStream.Close(); 
Console.WriteLine(outdata); 
//再次显示"登录" 
//如果把*行注释调,就显示"没有登录" 
}

发表于:2008-06-13 00:36:403楼 得分:30
本地已 经有的cookies 
在3.0以下平台:使用api 
[DllImport("wininet.dll", SetLastError=true)] 
public static extern bool InternetGetCookie(string url, string cookieName, StringBuilder cookieData, ref int size); 
在3.0以上平台可以使用 
System.Windows.Application.GetCookie方法。

【C#】获取本地Cookie的问题的更多相关文章

  1. taotao购物车2 解决购物车本地cookie和服务器redis不同步的问题

    下面的思路逻辑一定要理清楚,比较绕 思路; 前面已经实现了在cookie本地维护购物车的功能, 这次加入和服务器同步功能, 因为 购物车 操作比较频繁,所以,后台服务器 用redis存储用户的购物车信 ...

  2. 浅谈 php 采用curl 函数库获取网页 cookie 和 带着cookie去访问 网页的方法!!!!

    由于近段时间帮朋友开发一个能够查询正方教务系统的微信公众平台号.有所收获.这里总结下个人经验. 开讲前,先吐槽一下新浪云服务器,一个程序里的   同一个函数  在PC测试可以正常运行,在它那里就会挂的 ...

  3. js设置、获取单值cookie和多值cookie

    js设置.获取单值cookie和多值cookie,代码如下: var CookieUtil = (function () { var Cookie = function () { // 获取单值coo ...

  4. android获取本地图片并显示图片

    import java.io.FileNotFoundException; import android.content.ContentResolver; import android.content ...

  5. Linux编程获取本地IP

    #include <stdio.h> #include <sys/types.h> #include <ifaddrs.h> #include <netine ...

  6. Java获取本地IP地址

    import java.net.InetAddress; import java.net.UnknownHostException; public class IpTest { public stat ...

  7. 清除Cookie、获取指定Cookie的值、添加一个Cookie(24小时过期)、添加一个Cookie

    MXS&Vincene  ─╄OvЁ  &0000007 ─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄OvЁ:今天很残酷,明天更残酷,后天很美好 ...

  8. Android开发之获取本地视频和获取自拍视频

    1.获取本地所有视频 public void getLoadMedia() { Cursor cursor = UILApplication.instance.getApplicationContex ...

  9. 获取本地IP地址信息

    2012-06-05    /// <summary>         /// 获取本地IP地址信息         /// </summary>         void G ...

随机推荐

  1. WFS

    Web 要素服务(WFS) 1定义 支持对地理要素的插入,更新,删除,检索和发现服务.该服务根据HTTP客户请求返回GML(Geography Markup Language.地理标识语言)数据. W ...

  2. Codeforces 14D

    #include<iostream> #include<cstdio> #include<cstring> using namespace std; const i ...

  3. oracle 的 regexp_substr()的用法

    将字符串'1-2' 截取出来成1 .2,然后通过这两个值查出数据张三.李四  ,拼接起来成'张三-李四' oracle 语法 SELECT replace(WMSYS.WM_CONCAT(wrxm), ...

  4. qtcreator 与 opencv

    参考: http://blog.csdn.net/skeeee/article/details/10585429

  5. mac 卸载 XCode

    http://blog.csdn.net/songques/article/details/7244144

  6. javaweb之javascript结合(三)

    1.案例一:在末尾添加节点 第一步:获取到ul标签 第二步:创建li标签 document.createElement("标签名称")方法 第三步:创建文本 document.cr ...

  7. lru cache java

    http://www.acmerblog.com/leetcode-lru-cache-lru-5745.html acm之家的讲解是在是好,丰富 import java.util.LinkedHas ...

  8. JQuery Dialog 禁用X按钮关闭对话框,-摘自网络

    JQuery Dialog 禁用X按钮关闭对话框,禁用ESC键关闭代码如下:$("#div1").dialog({   closeOnEscape: false,   open: ...

  9. 数值类对象:NSNumber,NSValue,NSNull

    基本,集合,复杂,对象 可用对象封装基本数值,然后将对象放入NSArray或NSDictionary 中. 用对象封装基本数值后,即可给其发送消息. 数值类型包括:NSNumber,NSValue,N ...

  10. 关于.net的一些基础知识(一)

    一.GC工作原理: GC如其名,就是垃圾收集,当然这里仅就内存而言.Garbage Collector(垃圾收集器,在不至于混淆的情况下也成为GC)以应用程序的root为基础,遍历应用程序在Heap上 ...