0

我想连接一个网站并用 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()));
4

1 回答 1

0

刚刚访问了https://www.quora.com/,它看起来不像是基本身份验证。您需要提交一个 HTTP 类型为 POST 的表单,变量名称为“email”和“password”(您可以查看站点的源代码并找出预期的参数)。

看起来像 AJAX 机制用于执行与站点的身份验证。您将需要找出提交此请求的页面(异步或其他方式)。

毕竟,网站的安全连接 (https) 可能不允许您执行所需的操作(取决于服务器的 SSL 配置)

于 2013-01-04T09:30:03.110 回答