Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Java中的Cookie登录网页_Java_Cookies_Httpclient - Fatal编程技术网

使用Java中的Cookie登录网页

使用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

我想从需要用户和通行证的网页下载一个文件,但首先我必须获得cookies。我想做的事情在这个Python脚本中有详细描述,但我想用Java来做

我一直在读这方面的文章,我发现了httpclient库。httpclient是我所需要的全部吗?java中是否有mechanize和urllib2的等效库

提前谢谢

#!/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();
  • 创建一个自定义验证器,该验证器将从cookie中读取
    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,或者您是否知道更适合我的目标。