0
我发布之前,但现在我似乎真的看到了问题,只是无法修复它。Apache HttpClient没有收到所有的cookies?
我试图登录到我小学三年级的网站,甚至使应用程序为它以后,当我使用Chrome检查所创建的饼干,我得到这一切,
Cookie:appName=chippewa_falls; tool=""; selection=""; districtID=1; endYear=2011; calendarID=0; permCalendarID=0; JSESSIONID=BE5AEF51EAA72975150FC2D0F77DDE13
但是,当我的程序将打印所有收到的饼干,我只得到这个
[version: 0][name: JSESSIONID][value: BC1BAA33BEB23DC27B7883AC24934A1D][domain: campus.chipfalls.k12.wi.us][path: /campus][expiry: null]
这里是我的代码,
public static void main(String[] args) throws Exception {
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpGet httpget = new HttpGet("https://campus.chipfalls.k12.wi.us/campus/portal/chippewa_falls.jsp");
httpget.addHeader("Referer", "http://cfsd.chipfalls.k12.wi.us//high/");
HttpResponse response = httpclient.execute(httpget);
HttpEntity entity = response.getEntity();
System.out.println("Login form get: " + response.getStatusLine());
if (entity != null) {
InputStream input = entity.getContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
String ln = "";
while((ln = reader.readLine()) != null) {
System.out.println("During Get - " + ln);
}
}
System.out.println("Initial set of cookies:");
List<Cookie> cookies = httpclient.getCookieStore().getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
注意,仅仅是它的GET部分,
感谢所有帮助:)
编辑:我没有忘记提及,它使用HTTPS,但说实话,我不知道这与apache客户端是否有关系。
谢谢:)这就是我在想什么,所以我在发布之前大约一个小时就修好了它,不过谢谢。现在我遇到了一个新问题,页面使用JavaScript将所有内容打印出来,无论如何我仍然可以获得输出结果吗?如果必须,我会发布一个新问题。 – Austin 2011-05-18 13:38:09
嗯,为此你可能会遇到一些困难:你可能想看看AJAX调用页面所做的事情,然后模拟这些内容,但是只要让布局正确完成,那很麻烦。有几个Java浏览器模拟器库(我认为Selenium可以让你在Java代码中使用他们的浏览器模拟器),所以你可能需要走这条路线。 – Femi 2011-05-18 13:41:17