使用Java中的Cookie登录网页
我想从需要用户和通行证的网页下载一个文件,但首先我必须获得cookies。我想做的事情在这个Python脚本中有详细描述,但我想用Java来做 我一直在读这方面的文章,我发现了httpclient库。httpclient是我所需要的全部吗?java中是否有mechanize和urllib2的等效库 提前谢谢使用Java中的Cookie登录网页,java,cookies,httpclient,Java,Cookies,Httpclient,我想从需要用户和通行证的网页下载一个文件,但首先我必须获得cookies。我想做的事情在这个Python脚本中有详细描述,但我想用Java来做 我一直在读这方面的文章,我发现了httpclient库。httpclient是我所需要的全部吗?java中是否有mechanize和urllib2的等效库 提前谢谢 #!/usr/bin/python import mechanize, urllib2 from urllib import urlopen, urlencode user = 'us
#!/usr/bin/python
import mechanize, urllib2
from urllib import urlopen, urlencode
user = 'username'
password = 'password'
output_file = 'name.pdf'
web = "https://..."
bills_page = "https://.../bills"
login_web = "https://.../login/"
file = "https://.../file_I_want"
br = mechanize.Browser()
br.open(web)
data = {
'user_username': user,
'user_password': password,
'idClientehidden': '',
'answer': ''
}
response1 = urllib2.Request(login_web, urlencode(data))
br.open(response1)
br.open(bills_page)
html_bills = br.response().read()
br.open(file)
pdf_bill = open(output_file, 'w')
pdf_bill.write(br.response().read())
pdf_bill.close()
是处理cookie和访问经过身份验证的URL的良好框架
或者,您可以使用核心Java组件,如和,如下所示:
URL url = new URL("http://secureweb/secure.html");
BufferedReader br= new BufferedReader(new InputStreamReader(url.openStream()));
File file = new File("myLocalFile");
BufferedWriter bw = new BufferedWriter (file);
String lineStr;
while ((str = br.readLine()) != null) {
bw.write();
}
bw.close();
br.close();
userId/Password
public class HTTPAuthenticator extends Authenticator {
protected PasswordAuthentication getPasswordAuthentication() {
String username = "user"; //<--read from cookie
String password = "password"; //<--read from cookie
return new PasswordAuthentication(username, password.toCharArray());
}
}
URL url = new URL("http://secureweb/secure.html");
BufferedReader br= new BufferedReader(new InputStreamReader(url.openStream()));
File file = new File("myLocalFile");
BufferedWriter bw = new BufferedWriter (file);
String lineStr;
while ((str = br.readLine()) != null) {
bw.write();
}
bw.close();
br.close();
希望这能有所帮助。你的问题都是关于阅读cookies的吗?或者您正在寻找登录外部web并下载文件的方法?登录外部web并下载文件的方法。我的问题是,我是否必须使用httpclient,或者您是否知道更适合我的目标。