模拟登录


import com.bootdo.common.domain.LogDO;
import com.bootdo.common.domain.PageDO;
import com.bootdo.common.service.LogService;
import com.bootdo.common.utils.Query;
import com.bootdo.common.utils.R;
import org.apache.http.HttpEntity;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.protocol.HttpClientContext;
import org.apache.http.cookie.Cookie;
import org.apache.http.impl.client.BasicCookieStore;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RequestMapping("/lh")
@Controller
public class LhLoginController {

//private static CloseableHttpClient httpClient = HttpClients.createDefault();

BasicCookieStore cookieStore = new BasicCookieStore();
CloseableHttpClient httpClient = HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build();

private static HttpClientContext context = new HttpClientContext();


@GetMapping("/login")
String login(HttpServletRequest request, HttpServletResponse resp) {
CloseableHttpResponse response = null;
String content = null;
try {
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair("UserName", "xxxx"));
nvps.add(new BasicNameValuePair("PassWord", "xxxx"));
// HttpClient中的post请求包装类
HttpPost post = new HttpPost("http://xxxxxxxxxx:94/Login.aspx");
// nvps是包装请求参数的list
if (nvps != null) {
post.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8"));
}
// 执行请求用execute方法,content用来帮我们附带上额外信息
response = httpClient.execute(post, context);
// 得到相应实体、包括响应头以及相应内容
HttpEntity entity = response.getEntity();
// 得到response的内容
content = EntityUtils.toString(entity);
//输出html
System.out.println(content);

List<Cookie> cookies = cookieStore.getCookies();
Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
//System.out.println("- " + cookies.get(i).toString());
// cookieMap.put(cookies.get(i).getName(), cookies.get(i));
javax.servlet.http.Cookie myCookie=new javax.servlet.http.Cookie(cookies.get(i).getName(),cookies.get(i).getValue());
myCookie.setDomain("wms-cloud-cus.cbscs.com");
myCookie.setPath("/");
resp.addCookie(myCookie);
}
}
// 关闭输入流
EntityUtils.consume(entity);

return "xxxx";
} catch (Exception e) {
e.printStackTrace();
} finally {
if (response != null) {
try {
response.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return "xxxx";
}
}





posted @ 2018-10-27 15:26  albert_think  阅读(241)  评论(0编辑  收藏  举报