Java 从URL获取html

Java 从URL获取html,java,url,jsoup,Java,Url,Jsoup,我试图通过访问以下URL从数字图书馆获取搜索结果: 此url在任何web浏览器中都可以正常工作,但是,当我尝试从java应用程序读取此url时,它会返回此html文件,这似乎会将应用程序重定向到另一个页面: <!-- filename: sso --> <html> <head> <title>Login </title> <!-- START filename: meta-tags.pds --> <meta

我试图通过访问以下URL从数字图书馆获取搜索结果:

此url在任何web浏览器中都可以正常工作,但是,当我尝试从java应用程序读取此url时,它会返回此html文件,这似乎会将应用程序重定向到另一个页面:

<!-- filename: sso -->
<html>
<head> 
<title>Login </title> 
<!-- START filename: meta-tags.pds --> 
<meta http-equiv="Cache-Control" content="no-cache" /> 
<meta http-equiv="Pragma" content="no-cache" /> 
<meta http-equiv="Expires" content="Sun, 06 Nov 1994 08:49:37 GMT" /> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<!-- END   filename: meta-tags.pds --> 
<link rel="stylesheet" href="http://monash-dc05.hosted.exlibrisgroup.com:8991/PDSMExlibris.css"   type="text/css" /> 
</head> 
<body onload="location = '/goto/http://search.lib.monash.edu:80/primo_library/libweb/action/login.do?afterPDS=true&amp;vid=MON&amp;vid=MON&amp;dscnt=0&amp;targetURL=http%3A%2F%2Fsearch.lib.monash.edu%2Fprimo_library%2Flibweb%2Faction%2Fsearch.do%3Fdscnt%3D0&amp;frbg=&amp;tab=default%5Ftab&amp;dstmp=1397132076758&amp;srt=rank&amp;ct=search&amp;mode=Basic&amp;dum=true&amp;indx=1&amp;tb=&amp;vl%28freeText0%29=java&amp;fn=search&amp;pds_handle=GUEST';"> 
 <noscript> 
 <div id="header"> 
 <div> 
 <img src="http://monash-dc05.hosted.exlibrisgroup.com:8991//exlibris/primo/p4_1/pds/html_form/icon/exlibrislogo.jpg" alt="Exlibris Logo" />
 <p>&nbsp;</p> 
 </div> 
 </div> 
 <div id="connect"> 
 <a href="/goto/http://search.lib.monash.edu:80/primo_library/libweb/action/login.do?afterPDS=true&amp;vid=MON&amp;vid=MON&amp;dscnt=0&amp;targetURL=http%3A%2F%2Fsearch.lib.monash.edu%2Fprimo_library%2Flibweb%2Faction%2Fsearch.do%3Fdscnt%3D0&amp;frbg=&amp;tab=default%5Ftab&amp;dstmp=1397132076758&amp;srt=rank&amp;ct=search&amp;mode=Basic&amp;dum=true&amp;indx=1&amp;tb=&amp;vl%28freeText0%29=java&amp;fn=search&amp;pds_handle=GUEST">Return from Check SSO </a> 
 </div>    
 </noscript>
 </body>
  </html>
应用程序重定向到的页面(如body onload中所定义)不可用

我的问题是如何使用java应用程序从上面的URL获取html文件,就像从浏览器获取html文件一样


这个数字图书馆没有API或任何公开的服务,否则我会使用它们

更换
&与最后一个代码中的
&
(字符串url=“…)

阅读返回页面的标题:这是库的登录页面。调用http地址的java对象需要至少提供一次凭据。@collapsar,是的,这是登录页面,但为什么该页面没有来自浏览器的凭据?Reimeus,我刚刚添加了代码。它很简单,只连接到重定向页面。当然不是。您必须至少向库页面提交一次登录数据。成功后,浏览器将存储这些凭据并自动重新提交。事实上,还有其他几种方法可以完成此操作,例如Cookie(由web应用程序服务器提供并存储在浏览器中的少量数据)或精心制作的链接。一些(设计糟糕的)页面分析(有效假设)您的浏览器类型。任何此类场景都需要由您或您使用的java类处理。登录时您会收到多个cookie。除此之外,还会为您分配一个会话id。您可以通过在chrome(ctrl+shift+j)中打开开发者工具来查看cookie,进入控制台,重新加载/加载libraray页面,并在控制台中输入“document.cookie”。在我的系统上,我有
JSESSIONID=b644635a774134f64c3387644c215b4;stoid-?PD_PROD?61MONASH.PROD.primo.1701 sg=BLFICAAK;primo_RT=
(已消毒)。您必须至少提供一个valide
JESSIONID
。阅读java类的文档,了解它们支持Cookie的机制。
String url="http://search.lib.monash.edu:80/primo_library/libweb/action/login.do?afterPDS=true&amp;vid=MON&amp;vid=MON&amp;dscnt=0&amp;targetURL=http%3A%2F%2Fsearch.lib.monash.edu%2Fprimo_library%2Flibweb%2Faction%2Fsearch.do%3Fdscnt%3D0&amp;frbg=&amp;tab=default%5Ftab&amp;dstmp=1397132076758&amp;srt=rank&amp;ct=search&amp;mode=Basic&amp;dum=true&amp;indx=1&amp;tb=&amp;vl%28freeText0%29=java&amp;fn=search&amp;pds_handle=GUEST";
Document d=Jsoup.connect(url).timeout(60000).get();