
java 通过HTTP请求模拟登陆,获取不到cookie,高手帮忙看一下,代码如下 30
有些网站能获取到,但是http://app.lenovo.com一直获取不到,但是用fireBug是能看到cookie信息的,是不是网站做了什么限制?URLurl=nul...
有些网站能获取到,但是http://app.lenovo.com一直获取不到,但是用fireBug是能看到cookie信息的,是不是网站做了什么限制?
URL url = null;
HttpURLConnection httpurlconnection = null;
try {
url = new URL("http://app.lenovo.com");
httpurlconnection = (HttpURLConnection) url.openConnection();
httpurlconnection.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
httpurlconnection.connect();
String cookie0 = httpurlconnection.getHeaderField("Set-Cookie");
httpurlconnection.disconnect();
System.out.println(cookie0);
}catch(Exception e) {
e.printStackTrace() ;
} 展开
URL url = null;
HttpURLConnection httpurlconnection = null;
try {
url = new URL("http://app.lenovo.com");
httpurlconnection = (HttpURLConnection) url.openConnection();
httpurlconnection.setRequestProperty("User-Agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows 2000)");
httpurlconnection.connect();
String cookie0 = httpurlconnection.getHeaderField("Set-Cookie");
httpurlconnection.disconnect();
System.out.println(cookie0);
}catch(Exception e) {
e.printStackTrace() ;
} 展开
4个回答
展开全部
protected void readCookies(HttpURLConnection url_con){
List<String> cookieList = url_con.getHeaderFields().get("Set-Cookie");
if(cookieList != null){
for(String cookie : cookieList){
int p = cookie.indexOf("=");
String key = cookie.substring(0, p);
String value = cookie.substring(p+1, cookie.indexOf(";"));
cookies.put(key, value);
}
}
}
List<String> cookieList = url_con.getHeaderFields().get("Set-Cookie");
if(cookieList != null){
for(String cookie : cookieList){
int p = cookie.indexOf("=");
String key = cookie.substring(0, p);
String value = cookie.substring(p+1, cookie.indexOf(";"));
cookies.put(key, value);
}
}
}
更多追问追答
追问
用你给的方法获取到的cookieList为Null
追答
有些会为了防止盗链 你必须要设置好header的各项东西
包括 请求方式 get post ,refer ,accept之类的
你可以慢慢试试.....
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个网站的cookie不是服务器set-cookie设置的,而是js脚本设置的。
更多追问追答
追问
您说的对,能否指点一下如何获取这个网站的cookie呢
追答
你先看看js源码的设置部分看能不能用java来模拟,再有就是你可以找一个开源的浏览器源码,然后在执行第二次请求的时候获取cookie。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以用session啊,这样存在丢失
追问
可否详细说一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
是不是360在后台封杀了,关了试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询