当您收到任何错误的响应代码后,如何在重定向后获取URL?

时间:2018-10-30 22:37:07

标签: java connection urlconnection

我有一个重定向到任何网站的链接。我需要在所有重定向后找到一个URL。在收到任何不良响应之前,例如“ HTTP响应代码401”,我的代码才能正常工作。

例如,我们将URL https://google.com 缩短为 https://short.url

<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
<div id="root"></div>

因此,如果请求正常,我们在重定向后会得到一个URL( https://google.com )。但是,如果有一些响应代码,它将抛出我需要的URL异常。

URLConnection con = new URL("https://short.url").openConnection();
InputStream is = con.getInputStream();
URLAfterRedirect = String.valueOf(con.getURL());
is.close();

成功捕获异常后如何获取此URL?

1 个答案:

答案 0 :(得分:0)

尝试一下:

URLConnection con = new URL("https://short.url").openConnection();

con.setInstanceFollowRedirects(false);
String new_url = con.getHeaderField("Location");
con = new URL(new_url).openConnection();
InputStream is = con.getInputStream();
URLAfterRedirect = String.valueOf(con.getURL());
is.close();