查看: 930|回复: 2
|
java cookies问题
[复制链接]
|
|
我可以连接到我要到的网站然后得到它们的source code,
基本上有两个方法,
第一是用现成的class URL,
另外一个是Socket到port 80,然后send一个get的request给那个web server。
现在我的问题是,如果我想要开一些需要login的网站的话,
就必须用第二个方法,然后在send get request的同时,一起把cookies也send过去,
我是用firefox login先,然后copy那个cookies代码到program去的。
可是。。。work是work啦,不过不是很好。
请问有什么办法在java里把username和password send到login page去(应该和post有关吧?可是不会弄),
再把cookies保存下来,然后get request的时候就可以用那个cookies。
谢谢。 |
|
|
|
|
|
|
|
发表于 16-6-2006 02:27 PM
|
显示全部楼层
原帖由 Netmercury 于 16-6-2006 08:10 AM 发表
我可以连接到我要到的网站然后得到它们的source code,
基本上有两个方法,
第一是用现成的class URL,
另外一个是Socket到port 80,然后send一个get的request给那个web server。
现在我的问题是,如果我想 ...
最常见的加锁的网页有两种,第一种是当你游览加锁网页时会有一个dialog pop 出来要求你输入username 和 password, 这一种是属于standard 的http authentication,
而另外一种就是用 cookies based, 例如佳礼,你可以选择下一次免登陆,当你登陆后cookies就会行成,而下一次登陆就不须要再输入username 和 password。 这种网页加锁可称为custom based http authentication. 缺点是,如果你要用socket 连接及自动登陆须费很多的功夫, 因为不同的网页有不同登陆网页及你需要handle 它们的cookies.
我这里只有解决第一种的方法也许你需要用到,至于第二种,让我想想,如果有的话我就post 上来
import java.io.BufferedInputStream;
import java.io.InputStreamReader;
import java.net.Authenticator;
import java.net.PasswordAuthentication;
import java.net.URL;
public class SecureSourceViewer{
public static void main(String args[]) {
Authenticator.setDefault(new Authenticator(){
public PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("username", new char[]{'a','b','c'});
}
});
try {
URL url = new URL("http://www.google.com");
InputStreamReader inputSR = new InputStreamReader(new BufferedInputStream(url.openStream()));
int chr;
while ((chr = inputSR.read()) != -1) {
System.out.print((char) chr);
}
}catch (Exception ex) {
System.err.println(ex.getMessage());
}
System.exit(0);
}
} |
|
|
|
|
|
|
|
楼主 |
发表于 16-6-2006 03:43 PM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|