httpclient-HttpClient 模拟登录 Cookie问题

问题描述

HttpClient 模拟登录 Cookie问题

问题描述:向登录地址发起POST请求,提交登录验证信息,提示登录成功后发起另一个请求,返回提示“未登陆,请重新登陆”。
我这里用了同一个 HttpClient 实例,不知为何?

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPos("http://members.dota2.com.cn/dologin");
java.util.List nvps = new ArrayList();
nvps.add(new BasicNameValuePair("username", "username"));
nvps.add(new BasicNameValuePair("passwd", "password"));
nvps.add(new BasicNameValuePair("rand", yzm));

httpPost.setEntity(new UrlEncodedFormEntity(nvps));

HttpResponse response = httpclient.execute(httpPost);
int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
?????HttpEntity entity = response.getEntity();
?????String result = EntityUtils.toString(entity);
?????JSONObject json = JSONObject.fromObject(result);
?????System.out.println("登录系统返回信息:"+json.toString());
}
HttpPost httpPost = new HttpPost("http://event21.dota2.com.cn/dota2/activation/vipTester!contend.action");
java.util.List nvps = new ArrayList();
nvps.add(new BasicNameValuePair("r", String.valueOf(Math.random())));
httpPost.setEntity(new UrlEncodedFormEntity(nvps));

HttpResponse response = httpclient.execute(httpPost);

int statusCode = response.getStatusLine().getStatusCode();
if (statusCode == 200) {
?????HttpEntity entity = response.getEntity();
?????String result = EntityUtils.toString(entity);
?????JSONObject json = JSONObject.fromObject(result);
?????System.out.println("RETURN DATA : " + json.toString());
}

解决方案

你可以用fiddler监视一下请求,不行登陆之后把cookie取出来然后再发另一个请求之前把cookie再放进去。。。

时间: 2024-10-26 06:03:42

httpclient-HttpClient 模拟登录 Cookie问题的相关文章

解决方案-python或java httpclient模拟登录,cookie获取问题

问题描述 python或java httpclient模拟登录,cookie获取问题 目前准备用python或java httpclient做一个模拟登录的程序,可是无法获取cookie, 原因是,请求登录URL时,服务器反应是分两步来进行的.流程大概如下: 1. 首先,服务器会先发过来一个.JS文件,浏览器执行其中的函数,生成cookie,貌似存到document.cookie中. 2. 然后,需要带着生成的cookie才能去访问登录URL. 因为我的程序不能像浏览器一样执行.js文件,所以也

httpclient 模拟登录邮箱

问题描述 httpclient 模拟登录邮箱 httpclient 模拟登录邮箱 登录邮箱 private static String USERNAME = "111111"; private static String PASSWORD = "222222"; private static String LOGINURL = "https://mail.qq.com"; public static void main(String[] args

httpClient后台实现A系统对B系统的模拟登录后,如何在A的界面中显示B系统的页面

问题描述 我的目的是在自己开发的系统中,首先在后台java程序中实现对另一个系统的登录,例如,登陆论坛,登录成功之后,在自己的页面中显示从B系统获得的页面,例如,某个论坛帖子.我现在是在java用httpClient实现的,用postMethod进行模拟登录,getMethod获得想要看的帖子页面,可以在后台的控制台上打印出帖子页面的js代码内容,问题是怎么在我自己的页面上显示呢,我在jsp页面中是想将获取的帖子页面嵌入在iframe中的.如果是直接调用帖子的url,这样就存在需要重新登录的问题

httpclient模拟登录问题

问题描述 各位好,我在使用httpclient模拟登录时,出现403错误:Methodfailed:HTTP/1.1403Forbidden<html><head><title>403Forbidden</title></head><bodybgcolor="white"><center><h1>403Forbidden</h1></center><hr>

android端http模拟登录某一网站并保存cookie做一些登录后的操作,求帮助

问题描述 android端http模拟登录某一网站并保存cookie做一些登录后的操作,求帮助 我用android端调用某网站的登陆接口,获取他的cookie并且保存下来,之后我定位到这个网站的一篇帖子并写请求去发帖,当然传入我登录时返回的cookie, 可是根据返回的结果查看,并没有登陆上去, 请各位帮我参谋一下 不胜感激 cookies = httpClient.getCookieStore();拿到cookies requestParams.addHeader("Referer"

java之httpclient点点补充-登录问题

本来有点不太想写这篇文章,原因是写了这个,就感觉WEB应用怎么都可以自己写代码访问内部的资源信息!不过出于技术本身的我还是考虑些点点东西,而且即使我不写,这玩意也有,呵呵,前面一篇文章我提及到双方要约定token来进行认证交互等等,如果你想访问某个网站内部的资源,而且是需要登录的,但是又想通过本地程序直接蹦进去,怎么蹦呢? 办法不是没有,其实httpclient就是模拟一个浏览器的功能,而登录的动作其实就是获取到你的cookie,而httpclient本身有记录cookie的功能,所以这并不难.

httpclient...-HttpClient登录新浪微博,然后从微博抓取数据,下次登录的时候从cookies获取登录数据

问题描述 HttpClient登录新浪微博,然后从微博抓取数据,下次登录的时候从cookies获取登录数据 如题 小的刚入职场,领导让实现这样的功能,求各位大大指导一下 解决方案 先用浏览器登录,勾选记住密码,同时用fiddler抓包 HttpClient照着模拟,特别注意提交的cookie 解决方案二: http://blog.sina.com.cn/s/blog_75a4f95a0101ebs1.html 解决方案三: http://abandontofree.blog.sohu.com/2

PHP读取CURL模拟登录时生成Cookie文件的方法_php技巧

本文实例讲述了PHP读取CURL模拟登录时生成Cookie文件的方法.分享给大家供大家参考.具体实现方法如下: 在使用PHP中的CURL模拟登录时会保存一个Cookie文件,例如下面的代码 复制代码 代码如下: $login_url = 'XXX';    $post_fields['email'] = 'XXXX';  $post_fields['password'] = 'XXXX';  $post_fields['origURL'] = 'XXX';  $post_fields['doma

PHP获取Cookie模拟登录

关键字:CURL Cookie CURLOPT_COOKIEJAR CURLOPT_COOKIEFILE 模拟登录 PHP作者:方倍工作室原文:http://www.cnblogs.com/txw1958/p/php-cookie-login.html   一.定义Cookie存储路径 必须使用绝对路径 $cookie_jar = dirname(__FILE__)."/pic.cookie";   二.获取Cookie 将cookie存入文件 $url = "http://