我必须登录https网页并使用Java下载文件.我事先知道所有的URL:
baseURL = // a https URL;
urlMap = new HashMap<String, URL>();
urlMap.put("login", new URL(baseURL, "exec.asp?login=username&pass=XPTO"));
urlMap.put("logout", new URL(baseURL, "exec.asp?exec.asp?page=999"));
urlMap.put("file", new URL(baseURL, "exec.asp?file=111"));
Run Code Online (Sandbox Code Playgroud)
如果我在像Firefox这样的网络浏览器中尝试所有这些链接,它们都能正常工作.
现在我做的时候:
urlConnection = urlMap.get("login").openConnection();
urlConnection.connect();
BufferedReader in = new BufferedReader(
new InputStreamReader(urlConnection.getInputStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
Run Code Online (Sandbox Code Playgroud)
我刚刚再次返回登录页面HTML,我无法进行文件下载.
谢谢!
我同意Alnitak的观点,即问题可能是存储和返回cookie.
我使用的另一个好选择是来自Jakarta Commons的HttpClient.
另外值得注意的是,如果这是您控制的服务器,您应该知道将用户名和密码作为查询字符串发送是不安全的(即使您使用的是HTTPS).HttpClient支持使用POST发送参数,您应该考虑这些参数.
| 归档时间: |
|
| 查看次数: |
9601 次 |
| 最近记录: |