使用java下载文件,页面跳转

想用java下载知网上的pdf文件
http://www.cnki.com.cn/Article/CJFDTOTAL-DNBC201521037.htm
点击pdf下载
弹出的是这个网址http://epub.cnki.net/grid2008/docdown/docdownload.aspx?filename=DNBC201521037&dbcode=CJFD&year=2015&dflag=pdfdown

但我把这个网址复制,再在浏览器上打开的时候,转跳到的是知网首页。

图片说明
我在浏览器中查看了一下这个文件的下载地址。

再在浏览器中打开,结果是
图片说明

但把这个地址复制到迅雷上是可以下载的。

现在我问题是,怎样用java下载这个pdf文件?java的输出流得到的结果和在浏览器中打开网址的结果一样。而且,分析网页源码的时候只能得到第一个地址。求大神帮忙。

用fiddler调试下,多半是因为没有附带需要的cookie。

这个下载是需要登录的,你在用Java进行下载的时候,需要先模拟登录获取cookie,然后在请求中带上cookie再去进行下载。

登录:

 //登录获取到的cookie
    static Map<String, String> cookieMap = new HashMap<String, String>();

    Response response = null;
        try {
            response = Jsoup.connect(uri)
                    .userAgent("Mozilla")
                    .data(paramsMap)  
                    .method(Method.POST)
                    .timeout(20000)  
                    .execute();

            if (response.statusCode() == 200) {  
                cookieMap = response.cookies();
                loginFlag = true;
            } 

        } catch (IOException e) {
            e.printStackTrace();
        }

进行下载请求时加上cookie:

 Response response = null;
        try {
            response = Jsoup.connect(uri)
                    .userAgent("Mozilla/5.0")
                    .data(paramsMap)
                    .method(Method.POST)
                    .timeout(20000)
                    .cookies(cookieMap)
                    .ignoreContentType(true)
                    .execute();

        } catch (IOException e) {
            e.printStackTrace();
        }

可能是有拦截器类的东西吧,直接访问容易吧