有关httpClient获取sessionID的问题

qq_33550982 2016-04-12 05:28:58

public static void main(String[] args) {

HttpClient h = new HttpClient();
String sessionID = "";
try {
GetMethod get = new GetMethod("http://shop.gkyc.cn/login.jsp");
h.executeMethod(get);
Cookie[] cookie = h.getState().getCookies();
for(int i =0;i<cookie.length;i++){
if(cookie[i].getName().equals("JSESSIONID")){
sessionID = cookie[i].getValue();
System.out.println("第一次:::::::::::"+sessionID);
}
}
File f1 = new File("code1.png");
get = new GetMethod( "http://shop.gkyc.cn/vcodeimg.jsp" );
h.executeMethod(get);
InputStream in = get.getResponseBodyAsStream();
FileOutputStream out = new FileOutputStream(f1);
byte[] b = new byte[1024];
int len = 0;
while((len=in.read(b))!= -1){
out.write(b,0,len);
}

cookie = h.getState().getCookies();
for(int i =0;i<cookie.length;i++){
if(cookie[i].getName().equals("JSESSIONID")){
sessionID = cookie[i].getValue();
System.out.println("第二次:::::::::::"+sessionID);
}
}
System.out.println("开始调用uu打码:"+
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
boolean status=UUAPI.checkAPI(); //校验API,必须调用一次,校验失败,打码不成功
if(!status){
System.out.print("API文件校验失败,无法使用打码服务");
return;
}
String veridCode=UUAPI.easyDecaptcha("code1.png", 8002)[1];
System.out.println("uu打码成功("+veridCode+"):"+
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));



PostMethod post = new PostMethod("http://shop.gkyc.cn/login.jsp");

post.addParameter("userName", "wjszztrqyf");
post.addParameter("userPass", "wjszztrqyf");
post.addParameter("vcode", veridCode);
post.addParameter("loginBtn", "");

h.executeMethod(post);
cookie = h.getState().getCookies();
for(int i =0;i<cookie.length;i++){
if(cookie[i].getName().equals("JSESSIONID")){
sessionID = cookie[i].getValue();
System.out.println("第三次:::::::::::"+sessionID);
}
}

get = new GetMethod("http://shop.gkyc.cn/header.jsp");
/*if(sessionID!=null&&!sessionID.equals("")){
get.addRequestHeader("Cookie","JSESSIONID="+sessionID);
}*/
h.executeMethod(get);
cookie = h.getState().getCookies();
for(int i =0;i<cookie.length;i++){
if(cookie[i].getName().equals("JSESSIONID")){
sessionID = cookie[i].getValue();
System.out.println("第四次:::::::::::"+sessionID);
}
}
String response = get.getResponseBodyAsString();
//System.out.println(response);

if(response.contains("退出")){
System.out.println("OK");
}else{
System.out.println("false");
}

} catch (Exception e) {
e.printStackTrace();
}

}


控制台打印出来的sessionID 若登录成功 第2,3,4次的sessionID是一样的
为什么第一次get请求时 sessionID与后面几次的不同 都是同一个httpclient对象啊?
为什么第3次post请求的sessionID与第二次的相同啊
求告知啊 这httpClient是如何保持sessionID的
...全文
835 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
z905799779 2017-03-19
  • 打赏
  • 举报
回复
请问您的问题解决了吗

43,738

社区成员

发帖
与我相关
我的任务
社区描述
HTML5是构建Web内容的一种语言描述方式。HTML5是互联网的下一代标准,是构建以及呈现互联网内容的一种语言方式.被认为是互联网的核心技术之一。
社区管理员
  • HTML5社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧