<%@page import="javax.swing.RepaintManager"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.net.*" %> <%@ page import="java.util.*" %> <%@ page import = "org.apache.http.HttpEntity"%> <%@ page import = "org.apache.http.HttpResponse"%> <%@ page import = "org.apache.http.NameValuePair"%> <%@ page import = "org.apache.http.client.CookieStore"%> <%@ page import = "org.apache.http.client.HttpClient"%> <%@ page import = "org.apache.http.client.entity.UrlEncodedFormEntity"%> <%@ page import = "org.apache.http.client.methods.CloseableHttpResponse"%> <%@ page import = "org.apache.http.client.methods.HttpGet"%> <%@ page import = "org.apache.http.client.methods.HttpPost"%> <%-- <%@ page import = "org.apache.http.cookie.Cookie"%> --%> <%@ page import = "org.apache.http.impl.client.AbstractHttpClient"%> <%@ page import = "org.apache.http.impl.client.DefaultHttpClient"%> <%@ page import = "org.apache.http.message.BasicNameValuePair"%> <%@ page import = "org.apache.http.util.EntityUtils"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <% // 编码,解决中文乱码 // String str = URLEncoder.encode(request.getParameter("name"),"utf-8"); // 设置 name 和 url cookie HttpClient httpClient = new DefaultHttpClient(); // RequestConfig requestConfig = RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARD_STRICT).build(); // CloseableHttpClient httpClient = HttpClients.custom().setDefaultRequestConfig(requestConfig).build(); HttpPost httppost = new HttpPost("https://tdc.cloudiip.com/http/do.jhtml?router=systemIndexService.doLogin"); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("uuid", "7f0570ab4c704aeca037772b54b5f292")); params.add(new BasicNameValuePair("account", "18612222442")); params.add(new BasicNameValuePair("password", "abc123")); params.add(new BasicNameValuePair("checkcode", "1234")); params.add(new BasicNameValuePair("sub", "登录")); try { httppost.setEntity(new UrlEncodedFormEntity(params)); httpClient.execute(httppost); // 我们这里只是简单的打印出当前Cookie值以判断登录是否成功。 CookieStore cookieStore = ((AbstractHttpClient) httpClient).getCookieStore(); List<org.apache.http.cookie.Cookie> cookies = ((AbstractHttpClient) httpClient).getCookieStore().getCookies(); for (org.apache.http.cookie.Cookie cookiee : cookies){ javax.servlet.http.Cookie cookie= new javax.servlet.http.Cookie(cookiee.getName(),cookiee.getValue()); cookie.setDomain(".cloudiip.com"); cookie.setPath("/"); cookie.setVersion(cookiee.getVersion()); cookie.setMaxAge(60*60*24); // 设置cookie过期时间为24小时。 //name.setMaxAge(60*60*24); //url.setMaxAge(60*60*24); // 在响应头部添加cookie response.addCookie(cookie); System.out.println(cookie.getName()+"===" +cookie.getValue()+"===" +cookie.getDomain()+"======"+cookie.getVersion()); } response.setStatus(200); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { httppost.releaseConnection(); } //从url中获取的重定向地址 String url = request.getParameter("url"); %> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>设置 Cookie</title> </head> <body> <%response.sendRedirect(url); %> </body> </html>
报错:java.lang.IllegalArgumentException: An invalid domain [.cloudiip.com] was specified for this cookie
我用的tomcat 8.5 改成Tomcat 7 就可以了