httpclient 使用 痛苦历程

开始学习Httpclient 模拟登录一般的小网站时,都是非常容易,当Boss发下来的任务为 登录各大招聘网显示岗位发布

 

其实一般的实质性网站都是一样的操作步骤,只要找对相应的post 参数和 get 路径 保妳模拟有效。

 

但遇到的问题也不是相信的能解决的。! 往往在登录的过程中出现登录不成功这就是卡时间的问题了,因为找到一个相应的问题所需

 

要时间很长,在这里我提供一些相应的实施案例吧!

 

1。但一个网站登录成功 且无法跳转,这时候需要检查的是client策略、Cookie问题、和设置重定向

 

     来看看吧。比如说智联登录

    /**
     * 测试登录
     * @return
     */
 public static String login(){
     String url="";
        client.getHostConfiguration().setHost(LOGON_SITE, LOGON_PORT,"http");               //加载
        client.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "utf-8");    //设置编号
        client.getState().setCookiePolicy(CookiePolicy.COMPATIBILITY);                    //设置流量器格式
         PostMethod post = new PostMethod("http://rd2.zhaopin.com/loginmgr/loginproc.asp"); //登录网址
         NameValuePair user = new NameValuePair("username","xx");                  //账号密码
         NameValuePair pwd = new NameValuePair("password","xx");  

         try{
         post.setRequestBody(new NameValuePair[]{user,pwd});                             //设置post参数
         int status=client.executeMethod(post);                //执行post
         Header[] hd=post.getResponseHeaders();           //登录跳转的location
         for(Header dd: hd){
           System.out.println(dd.getName()+":"+dd.getValue());
         }
           Header location=post.getResponseHeader("location");
           GetMethod get=new GetMethod(location.getValue());
            //登录成功之后跳转                                     
            get.setFollowRedirects(true);  
            get.getParams().setParameter(HttpMethodParams.SINGLE_COOKIE_HEADER, true);
            int status2=client.executeMethod(get);
                       //登录跳转的location
           
      //System.out.println(get.getResponseBodyAsString());
      get.releaseConnection();  
   } catch (Exception e) { 
    e.printStackTrace();
   } 
   
   post.releaseConnection();
   return url;
 }


 

 登录成功无跳转修正!

 

2.在来个Httpclient ajax登录吧!

  

 

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这份DWZ代码是我个人一直使用的,DWZ对各版本IE的兼容性是比较好的,我的代码在IE6下也基本能正常使用,这是一直舍不得换其它框架的主要原因。 压缩包是完整的jfinal+dwz的测试性小代码,直接导入myeclipse,运行DwzConfig.java,访问http://localhost:8888/admin就可以进入页面。 代码例子是JAVA的,dwz,ztree等是前台的东西,和后台没有关系。不管.net还是php都通用,请根据使用的平台,修改发布WebRoot下的文件,修改admin.jsp就可以。 页面集成了ztree3.3,kindeditor,My97DatePicker的使用例子。 本代码解决了DWZ集成ztree时,对于未展开的菜单点击后target无效的问题。以下是使用例子: var zNodes =[ { id:1, pId:0, name:"菜单管理(不响应点击)", url:"#",open:false}, { id:2, pId:1, name:"菜单2(响应点击)", url:"articleAddEdit.html", target:"navTab", rel:"articleAddEdit2",open:false}, { id:3, pId:2, name:"菜单3(不响应点击)", url:"#", target:"navTab", rel:"articleAddEdit3",open:false}, { id:4, pId:3, name:"文章管理4", url:"articleAddEdit.html", target:"navTab", rel:"articleAddEdit4"}, { id:4, pId:3, name:"弹出层", url:"articleAddEdit.html", target:"dialog", rel:"articleAddEdit5",mask:true,width:860,height:600}, { id:4, pId:3, name:"文章管理6", url:"articleAddEdit.html", target:"navTab", rel:"articleAddEdit6"} ]; $(document).ready(function(){ $.fn.zTree.init($("#treeDemo"), setting, zNodes); }); 如果要菜单不响应点击事件,请设置url:"#" 此代码处理了弹出层刷新及弹出层分页问题,这部分没有提供例子。 别怪我分数这么贵,真心的自己花了时间去测试改进,希望帮助到更多朋友。 有问题或建议请写评论或发信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值