Github原始文件的URL重定向

时间:2015-12-18 01:22:01

标签: java authentication github

一段现有的Java代码被破坏了。它用于以原始格式从Github中提取静态文件。出于某种原因,URL会在最后使用随机令牌重定向到另一个URL。我已经指定HttpURLConnection跟随重定向,但它似乎无法正常工作。这是代码:

        HttpURLConnection.setFollowRedirects(true);

        URL urlClass = new URL(url);
        HttpURLConnection uc = (HttpURLConnection)urlClass.openConnection();

        String userpass = githubUserName + ":" + githubPassword;
        String basicAuth = "Basic " + new String(new Base64().encode(userpass.getBytes()));
        uc.setRequestProperty("Authorization", basicAuth);
        uc.setInstanceFollowRedirects(true);  

        String fileContent = IOUtils.toString(uc.getInputStream());

网址如下所示: https://github.com/project/raw/master/filename.json 重定向后:https://github.com/raw/project/master/filename.json?token=somerandomlettershere

有趣的是,Web浏览器可以自动处理重定向,我可以看到那里的内容,而HttpURLConnection只返回404。

1 个答案:

答案 0 :(得分:0)

更新

通过使用Github Java API(https://github.com/eclipse/egit-github/tree/master/org.eclipse.egit.github.core)重构原始代码解决了这个问题,这样就不需要通过完整的URL访问文件了,这导致了重定向问题,而是提供了存储库和文件名。