「已注销」 2013-07-24 08:17 采纳率: 50%
浏览 3075

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());
}

  • 写回答

1条回答

  • wangyuesong 2014-08-16 17:19
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试
  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿