我自己写了一个登录页面,页面上from action一个固定链接,登录成功,进入他的主页面。我想在点击登录时不进他的页面所以我写一个servlet,调用这个方法,我在下面重定向回我的页面。
调用的方法如下:
public static void main(String[] args) throws Exception {
//cookie存储类
BasicCookieStore cookieStore = new BasicCookieStore();
//创建一个httpclient,并设置默认cookie存储cookieStore
CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCookieStore(cookieStore)
.build();
try {
//创建HttpGet对象,需要发送GET请求https://someportal/
HttpGet httpget = new HttpGet("https://someportal/");
//HttpClient对象的execute(HttpUriRequest request)发送请求
CloseableHttpResponse response1 = httpclient.execute(httpget);
//try开始,试图执行
try {
//获取服务器返回的HttpEntity对象
HttpEntity entity = response1.getEntity();
//打印返回信息,response.getStatusLine().getStatusCode()==200链接成功,==500失败。
System.out.println("Login form get: " + response1.getStatusLine());
//HttpEntity对象提供的静态帮助类,EntityUtils.consume关闭资源
EntityUtils.consume(entity);
//打印Initial set of cookies:
System.out.println("Initial set of cookies:");
//获取Cookies并循环,空的输出None,否则输出cookie
List<Cookie> cookies = cookieStore.getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
} finally {
//关闭
response1.close();
}
//POST请求,并设置URI和参数
HttpUriRequest login = RequestBuilder.post()
.setUri(new URI("https://someportal/"))
.addParameter("IDToken1", "username")
.addParameter("IDToken2", "password")
.build();
//执行POST请求
CloseableHttpResponse response2 = httpclient.execute(login);
try {
//获取实体对象
HttpEntity entity = response2.getEntity();
//打印服务器返回信息
System.out.println("Login form get: " + response2.getStatusLine());
//关闭流
EntityUtils.consume(entity);
//打印cookie
System.out.println("Post logon cookies:");
List<Cookie> cookies = cookieStore.getCookies();
if (cookies.isEmpty()) {
System.out.println("None");
} else {
for (int i = 0; i < cookies.size(); i++) {
System.out.println("- " + cookies.get(i).toString());
}
}
} finally {
response2.close();
}
} finally {
//关闭httpclient
httpclient.close();
}
}
页面提交参数如下:
String __VIEWSTATE=request.getParameter("__VIEWSTATE");
String txtPopCorpCode=request.getParameter("txtPopCorpCode");
String txtPopUserName=request.getParameter("txtPopUserName");
String htxtPassword=request.getParameter("htxtPassword");
String txtPopPassword=request.getParameter("txtPopPassword");
String txtPopCheckCode=request.getParameter("txtPopCheckCode");
String btnPopLogin=request.getParameter("btnPopLogin");
怎么让这个方法登录成功,怎么知道他成功登录了。并且我需要登录成功后操作这个网站的其他的页面。
嵌套一个 iframe ,由主页面来控制 iframe.
能不能给我个小例子,这个标签实在没用过
src= 页面的名字
<iframe src="managerlist.php" id="iframe_content"
name="iframe_content" style="width: 95%; height: 95%; border: 1px"></iframe>
document.getElementById("iframe_content").setAttribute("src", 'XXXX.php');
iframe 可以和主页面 互相交换 ,你网上查查
@吃饭了吗: 不是我想要的,但非常感谢
必须跳转过去吗,你可以先用AJAX去请求下,再重定向。也可以去试试去他们主页嵌入一段你的js代码,到时候跳转,把信息保存在cookie
谢谢,但是问题已修改。
没有人会吗??