Java Http POST具有基本授权和重定向功能

时间:2011-05-17 23:42:50

标签: java http authorization

程序执行带有基本授权的http帖子很好但是当帖子完成后,页面会被重定向到成功页面。由401授权导致的重定向失败。

        final URLConnection conn = url.openConnection();
        conn.setDoOutput(true);
        conn.setRequestProperty("Authorization", "basic " +base64);
        wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
        rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));

该行

rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
由于401授权失败,

失败...

我也尝试过添加

conn.setRequestProperty("Authorization", "basic " +base64);

wr.flush();

我收到“已经连接”的错误。显然,我设置的授权不会影响重定向。非常感谢任何解决这个问题的方法。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

这是解决此问题的其他任何人的工作解决方案。再次感谢Femi提供解决方法的想法。

URL url = new URL(page);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setInstanceFollowRedirects(false);
conn.setDoOutput(true);
conn.setRequestProperty("Authorization", "basic " +base64);
wr = new OutputStreamWriter(conn.getOutputStream());
wr.write(data);
wr.flush();
if(conn.getResponseCode() == HttpURLConnection.HTTP_MOVED_TEMP){
    url = new URL(conn.getHeaderField("Location"));
    conn = (HttpURLConnection)url.openConnection();
    conn.setRequestProperty("Authorization", "basic " +base64);
}
rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));