我想连接一个网站并用Java下载一些数据,但它需要身份验证。
我在网上搜索,发现我应该将user:pass
发送到网站。我这样做但是我无法登录你能不能给我一个提示!哪里不对?
URL url = new URL("https://www.quora.com/");
URLConnection conn = url.openConnection();
conn.setRequestProperty(
"User-Agent",
"Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.1.6) Gecko/20070723 Iceweasel/2.0.0.6 (Debian-2.0.0.6-0etch1)"
);
String userpass = "email@xyz.com" + ":" + "password";
String basicAuth = "Basic " + javax.xml.bind.DatatypeConverter.printBase64Binary(userpass.getBytes());
conn.setRequestProperty ("Authorization", basicAuth);
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
答案 0 :(得分:0)
刚访问过https://www.quora.com/,它看起来不像是基本身份验证。您需要提交一个HTTP类型为POST的表单,其变量名称为“email”和“password”(您可以查看站点的来源并找出预期的参数)。
看起来AJAX机制用于对站点执行身份验证。您需要找到提交此请求的页面(异步或其他)。
毕竟,网站的安全连接(https)可能无法让您执行所需的操作(取决于服务器的SSL配置)