Java 连接到远程站点需要身份验证

Java 连接到远程站点需要身份验证,java,authentication,httpurlconnection,Java,Authentication,Httpurlconnection,我想连接一个网站并下载一些Java数据,但是它需要身份验证。 我在网上搜索,发现我应该把user:pass发送到该站点。我正在这样做,但我不能登录你能给我一个提示!哪里不正确 URL url = new URL("https://www.quora.com/"); URLConnection conn = url.openConnection(); conn.setRequestProperty( "User-Agent", "Mozilla/5.0 (X11; U; Linu

我想连接一个网站并下载一些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()));
刚访问过,看起来不像是基本的身份验证。您需要提交一个HTTP类型为POST的表单,变量名为“email”和“password”(您可以查看站点的源代码并找到预期的参数)

似乎使用了AJAX机制来执行站点的身份验证。您需要找出此请求提交到的页面(异步或其他)


在所有这些之后,站点的安全连接(https)可能不允许您执行所需的操作(取决于服务器的SSL配置)

代码似乎正常:问题出在哪里?您是否收到错误?您确定quora.com使用基本身份验证吗?不,我不确定quora.com是否使用基本身份验证。如何检测?我使用上面的代码连接了另一个站点。两者都需要身份验证。我不知道为什么身份验证代码不起作用,web服务器给了我默认页面。