小编use*_*412的帖子

使用HttpClient.Execute(HttpGet)重定向后获取URL

我已经搜索了一段时间,但我找不到明确的答案.我正在尝试登录网站. https://hrlink.healthnet.com/ 此网站重定向到不合作的登录页面.我必须将我的登录凭据发布到重定向的URL.

我正在尝试用Java编写代码,但我不明白如何从响应中获取URL.它可能看起来有点乱,但我在测试的时候就是这样.

    HttpGet httpget = new HttpGet("https://hrlink.healthnet.com/");
    HttpResponse response = httpclient.execute(httpget);HttpEntity entity = response.getEntity();

    String redirectURL = "";

    for(org.apache.http.Header header : response.getHeaders("Location")) {
        redirectURL += "Location: " + header.getValue()) + "\r\n";
        }        

    InputStream is;
    is = entity.getContent();

    BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8); 
    StringBuilder sb = new StringBuilder(); 
    String line = null; 
    while ((line = reader.readLine()) != null) { 
            sb.append(line + "\n"); 
    } 
    is.close(); 

    String result = sb.toString();
Run Code Online (Sandbox Code Playgroud)

我知道我被重定向,因为我的结果字符串显示的是实际的登录页面,但我无法获得新的URL.

在FireFox中我使用的是TamperData.当我导航到这个网站时https://hrlink.healthnet.com/我有一个GET,其中包含302 - Found和Login Page的位置.然后另一个GET到实际的登录页面

非常感谢任何帮助,谢谢.

java http-get httpresponse httpclient

7
推荐指数
1
解决办法
2万
查看次数

标签 统计

http-get ×1

httpclient ×1

httpresponse ×1

java ×1