需要的Jar包下载地址: http://hc.apache.org/downloads.cgi
package com.tan.http; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.Header; import org.apache.http.HeaderElement; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.CookieStore; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpPost; import org.apache.http.cookie.Cookie; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; public class TestHttpClient { private static final String LOGINURL = "http://localhost:8080/login.jsp"; private static final String USERNAME = "username"; private static final String PASSWORD = "password"; private static final String LINE = System.getProperty("line.separator"); /** * @param args */ public static void main(String[] args) throws Exception { CookieStore store = getCookieStore(); if (store != null) { List<Cookie> cookies = store.getCookies(); System.out.println(cookies); // for (Cookie cookie: cookies) { // System.out.println(cookie); // } } } private static CookieStore getCookieStore() throws UnsupportedEncodingException, IOException, ClientProtocolException { CookieStore store = null; DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(LOGINURL); // 登录的参数 List<NameValuePair> nvps = new ArrayList<NameValuePair>(); // 登录的 Username nvps.add(new BasicNameValuePair("username", USERNAME)); nvps.add(new BasicNameValuePair("password", PASSWORD)); nvps.add(new BasicNameValuePair("URL", "/")); httpPost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8)); // 执行登录 HttpResponse response = httpClient.execute(httpPost); // 获取 Http响应头中的 Set-Cookie Header header = response.getFirstHeader("Set-Cookie"); HeaderElement[] elements = header.getElements(); if (elements != null) { for (HeaderElement element : elements) { System.out.println( "HeaderElement's name : " + element.getName() + LINE + "HeaderElement's value : " + element.getValue() ); // 获取 Cookies store = httpClient.getCookieStore(); break; } } return store; } }
<%@ page contentType="text/html;charset=gb18030" pageEncoding="gb18030"%> <%@ page import="java.util.*"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> Login Form </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> <SCRIPT LANGUAGE="JavaScript"> <!-- //--> </SCRIPT> </HEAD> <BODY> <%! private static boolean isEmpty(String v) { return v == null || v.trim().length() == 0; } %> <% String username = request.getParameter("username"); String password = request.getParameter("password"); if (!isEmpty(username) && !isEmpty(password)) { out.println("Login successful"); } else { out.println("Login failure"); } %> <FORM METHOD="post" ACTION="login.jsp" id="loginForm"> <input type="text" name="username" /> <input type="password" name="password"/> <input type="submit" value="submit" /> <input type="reset" value="reset" /> </FORM> </BODY> </HTML>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端