zoukankan      html  css  js  c++  java
  • 如果向某网址Post信息,并得到CookieContainer以便以后直接通过验证

      
    using system;
    using system.net;
    using system.io;
    using system.text;
    [stathread]
    static void main(string[] args)
    {
    //
    // todo: 在此处添加代码以启动应用程序
    //
    string url="http://localhost/csdn2/1.asp";
    // 
    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); 
    //再次显示"登录"
    //如果把*行注释调,就显示"没有登录"
    }

  • 相关阅读:
    dvwa-Brute Force
    i春秋 Crypto模块rsa wrtiteup
    栈-函数调用
    Ymodem协议详解
    JAVA 传输post传输长字符、数据编码解码 反序列化字符串
    jquery datatable 全选,反选 参考文档
    java中bimface 在线申请token。模型视角 模型批注处理
    C# Winform 子窗体提交后更新父窗体datagridview数据(事件和委托)
    JAVA 两个时间 相差的 小时,天数,分钟
    JAVA 使用注解lombok@Builder和@Data,primary not found default constructor
  • 原文地址:https://www.cnblogs.com/goody9807/p/1107560.html
Copyright © 2011-2022 走看看