现在需要用java模拟浏览器 去偷点数据来 有验证码登陆的
先简单的看了一下 有 HttpURLConnection 和HttpClient
再细看看HttpURLConnection 挺难弄的,决定从HttpClient入手
但是在eclipse的工程里面引入 httpclient包
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
问题待续--------------------------------
知道原因所在了 还少了logging的包 反正一共是三个包 少一个都不行 部署完毕 测试运行ok
看了一些别人的学习笔记 思路是
1 打开登陆的页面 获取附加码
2 将各个参数传入 登陆成功
3 打开需要查询的界面,余下就是时间参数的转换啦
/*
* Created on 2010-12-2
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package com.Browser.bean;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.cookie.*;
import org.apache.commons.httpclient.methods.*;
/**
* 用来演示登录表单的示例
* @author Liudong
*/
public class FormLoginDemo {
public static void main(String[] args) throws Exception{
HttpClient client = new HttpClient();
client.getHostConfiguration().setHost( "XXXXX.XXXXXX.net" , 80,"http");
/********打开登陆页面*获取附加码**********/
HttpMethod method = new GetMethod("/");
int status = client.executeMethod(method);
String temp= method.getResponseBodyAsString();
int FuJiaMaInt = temp.indexOf("");
String FuJiaMa = temp.substring(FuJiaMaInt+26,FuJiaMaInt+30);
System.out.println("FuJiaMa:"+FuJiaMa);
method.releaseConnection();
/*********输入参数*登陆*******/
method = new GetMethod("/checkuser.jsp?acc_loginname=XXXX&acc_password=XXXX&checkCode="+FuJiaMa);
status = client.executeMethod(method);
System.out.println(method.getResponseBodyAsString());
method.releaseConnection();
// 访问所需的页面 main2.jsp
method =new GetMethod("/assess/main2.jsp ?zt=1291172382&date=2010-12-01");
client.executeMethod(method);
System.out.println(method.getResponseBodyAsString());
method.releaseConnection();
}
}