通过https连接到网站

时间:2009-11-24 14:35:08

标签: java https

我有一些应用程序应该连接到https站点,并接收一些。 有了连接,一切都还可以,但是当我知道getInputStream()时出现异常:

java.io.IOException:服务器返回HTTP响应代码:403为URL:

以下是代码的一部分:

    String query = siteURL.toExternalForm();

    URL queryURL = new URL(query);

    String data = "username="+login+"&password="+password;

    URLConnection connection = queryURL.openConnection();

    connection.setDoOutput(true);

    OutputStreamWriter writer = new OutputStreamWriter(connection
            .getOutputStream());
    writer.write(data);
    writer.flush();

    BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));

2 个答案:

答案 0 :(得分:1)

看起来你不能做你想做的事,你得到的是HTTP 403: Forbidden

您可以在浏览器中打开相同的网址吗?

答案 1 :(得分:1)

我认为该网站有自定义身份验证机制,您必须提供我们的用户名和密码作为GET参数。所以你的网址应该是这样的:

URL url = new URL("http://somesite.org/page?username=<username>&password=password");
... = url.openConnection();
...

如果使用url.openConnection,则会执行HTTP GET请求。如果要使用请求发送数据,则必须使用HTTP POST请求。在这种情况下,您可以使用第三方库,如Apache Commons HttpClient。

BTW:为什么你要创建一个新的URL对象,如果你已经有了一个?