栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java web中 HttpClient模拟浏览器登录后发起请求

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java web中 HttpClient模拟浏览器登录后发起请求

HttpClient模拟浏览器登录后发起请求

浏览器实现这个效果需要如下几个步骤:

    1请求一个需要登录的页面或资源

    2服务器判断当前的会话是否包含已登录信息。如果没有登录重定向到登录页面

    3手工在登录页面录入正确的账户信息并提交

    4服务器判断登录信息是否正确,如果正确则将登录成功信息保存到session中

    5登录成功后服务器端给浏览器返回会话的SessionID信息保存到客户端的cookie中

    6浏览器自动跳转到之前的请求地址并携带之前的cookie(包含登录成功的SessionID)

    7服务器端判断session中是否有成功登录信息,如果有则将请求的资源反馈给浏览器

package com.artsoft.demo;

import java.io.FileOutputStream; 
 
import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.cookieStore; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.apache.http.impl.conn.PoolingClientConnectionManager; 
import org.apache.http.util.EntityUtils; 
 
 
 
public class HttpClientDemo 
{ 
 
   
  public static void main(String[] args) throws Exception 
  { 
    getResoucesByLogincookies(); 
  } 
 
   
  private static void getResoucesByLogincookies() throws Exception 
  { 
    HttpClientDemo demo = new HttpClientDemo(); 
    String username = "......";// 登录用户 
    String password = "......";// 登录密码 
 
    // 需要提交登录的信息 
    String urlLogin = "http://hx.buscoming.cn/Api/Security/Logon?UserCode=" + username + "&Password=" + password; 
 
    // 登录成功后想要访问的页面 可以是下载资源 需要替换成自己的iteye Blog地址 
    String urlAfter = "http://hx.buscoming.cn/Api/Security/GetLoginAccount";
 
    DefaultHttpClient client = new DefaultHttpClient(new PoolingClientConnectionManager()); 
 
     
    HttpPost post = new HttpPost(urlLogin); 
    HttpResponse response = client.execute(post); 
    HttpEntity entity = response.getEntity(); 
    cookieStore cookieStore = client.getcookieStore(); 
    client.setcookieStore(cookieStore); 
 
     
    HttpGet get = new HttpGet(urlAfter); 
    response = client.execute(get); 
    entity = response.getEntity(); 
 
     
 
    String pathName = "d:\index.html"; 
    writeHTMLtoFile(entity, pathName); 
  } 
 
   
  public static void writeHTMLtoFile(HttpEntity entity, String pathName) throws Exception 
  { 
 
    byte[] bytes = new byte[(int) entity.getContentLength()]; 
 
    FileOutputStream fos = new FileOutputStream(pathName); 
 
    bytes = EntityUtils.toByteArray(entity); 
 
    fos.write(bytes); 
 
    fos.flush(); 
 
    fos.close(); 
  } 
 
} 

 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/146021.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号