控制台中显示奇怪的输出,试图通过站点中的java登录
我正在尝试以下代码登录到一个站点并获取内容,但当我运行代码时,输出不可读,代码也没有给出任何错误/异常。代码是否在站点中工作并登录,但数据已加密,因此在控制台中显示,或者代码是否存在一些问题控制台中显示奇怪的输出,试图通过站点中的java登录,java,web-crawler,apache-commons-httpclient,Java,Web Crawler,Apache Commons Httpclient,我正在尝试以下代码登录到一个站点并获取内容,但当我运行代码时,输出不可读,代码也没有给出任何错误/异常。代码是否在站点中工作并登录,但数据已加密,因此在控制台中显示,或者代码是否存在一些问题 import java.net.MalformedURLException; import org.apache.commons.httpclient.*; import org.apache.commons.httpclient.cookie.CookiePolicy; import org.apache
import java.net.MalformedURLException;
import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.cookie.CookieSpec;
import org.apache.commons.httpclient.methods.*;
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.Cookie;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.net.URL;
public class TestHttpClient {
public static String formPostUrl ="http://mims.com/" ;
public static String LOGON_SITE = "https://sso.mims.com/Account/SignIn";
static final int LOGON_PORT = 80;
public static void main(String[] args ) throws MalformedURLException
{
String nextHref="";
HttpClient client = new HttpClient();
HttpMethod authGetmethod = new GetMethod("https://sso.mims.com/Account/SignIn");
authGetmethod.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1");
authGetmethod.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
authGetmethod.setRequestHeader("Accept-Language","en-us,en;q=0.5");
authGetmethod.setRequestHeader("Accept-Encoding","gzip,deflate");
authGetmethod.setRequestHeader("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.7");
authGetmethod.setRequestHeader("Keep-Alive","300");
authGetmethod.setRequestHeader("Connection","keep-alive");
//authGetmethod.setRequestHeader("Referer","https://login.findmespot.com/faces/welcome.jsp");
try
{
//send first request to capture cookie information
int status = client.executeMethod(authGetmethod);
BufferedReader br = new BufferedReader(new InputStreamReader(authGetmethod.getResponseBodyAsStream()));
String str ="";
String resultJsessionid="";
while((str=br.readLine())!=null )
{
if(str.indexOf("ASP.NET_SessionId=")!=-1)
{
//capture Session ID
resultJsessionid=getJsessionid(str);
break;
}
}
//release connection for final login request
authGetmethod.releaseConnection();
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_COMPATIBILITY);
Cookie[] cookies = (Cookie[]) client.getState().getCookies();
for (int i = 0; i < cookies.length; i++) {
Cookie cookie = cookies[i];
System.err.println(
"Cookie: " + cookie.getName() +
", Value: " + cookie.getValue() +
", IsPersistent?: " + cookie.isPersistent() +
", Expiry Date: " + cookie.getExpiryDate() +
", Comment: " + cookie.getComment());
//PostMethod authpost = new PostMethod("https://login.findmespot.com/faces/welcome.jsp?jessionid="+resultJsessionid );
PostMethod authpost = new PostMethod("http://mims.com/");
// Set Headers
authpost.setRequestHeader("http.Agent", "Mozilla/5.0 (Windows NT 5.1; rv:9.0.1) Gecko/20100101 Firefox/9.0.1");
authpost.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
authpost.setRequestHeader("Accept-Language","en-us,en;q=0.5");
authpost.setRequestHeader("Accept-Encoding","gzip,deflate");
authpost.setRequestHeader("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.7");
authpost.setRequestHeader("Keep-Alive","300");
authpost.setRequestHeader("Connection","keep-alive");
authpost.setRequestHeader("Referer","https://sso.mims.com/Account/SignIn");
// Prepare login parameters
NameValuePair inputtext1 = new NameValuePair("Email Address","myemailaddress");
NameValuePair inputtext5 = new NameValuePair("Password", "password for login");
authpost.setRequestBody(
new NameValuePair[] {inputtext1,inputtext5});
client.executeMethod(authpost);
System.out.println("Login form post: " + authpost.getStatusLine().toString());
String readLine;
br = new BufferedReader(new InputStreamReader(authpost.getResponseBodyAsStream()));
while(((readLine = br.readLine()) != null)) {
System.out.println(readLine);
nextHref=getNexthref(readLine);
}
authpost.releaseConnection();
Cookie[] cookies1 = (Cookie[]) client.getState().getCookies();
for (int i1 = 0; i < cookies1.length; i++) {
Cookie cookie1 = cookies1[i1];
System.err.println(
"Cookie: " + cookie1.getName() +
", Value: " + cookie1.getValue() +
", IsPersistent?: " + cookie1.isPersistent() +
", Expiry Date: " + cookie1.getExpiryDate() +
", Comment: " + cookie1.getComment());
HttpMethod authGetmethodNext = new GetMethod("https://sso.mims.com/Account/SignIn"+nextHref);
authGetmethodNext.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.9) Gecko/2009040821 Firefox/3.0.9");
authGetmethodNext.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
authGetmethodNext.setRequestHeader("Accept-Language","en-us,en;q=0.5");
authGetmethodNext.setRequestHeader("Accept-Encoding","gzip,deflate");
authGetmethodNext.setRequestHeader("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.7");
authGetmethodNext.setRequestHeader("Keep-Alive","300");
authGetmethodNext.setRequestHeader("Connection","keep-alive");
authGetmethodNext.setRequestHeader("Referer","https://login.findmespot.com/faces/welcome.jsp");
client.executeMethod(authGetmethodNext);
System.out.println("Login form post: " + authGetmethodNext.getStatusLine().toString());
PostMethod authpost1 = new PostMethod("http://mims.com/");
// Set Headers
authpost1.setRequestHeader("http.Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.9) Gecko/2009040821 Firefox/3.0.9");
authpost1.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
authpost1.setRequestHeader("Accept-Language","en-us,en;q=0.5");
authpost1.setRequestHeader("Accept-Encoding","gzip,deflate");
authpost1.setRequestHeader("Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.7");
authpost1.setRequestHeader("Keep-Alive","300");
authpost1.setRequestHeader("Connection","keep-alive");
authpost1.setRequestHeader("Referer","Referer: https://login.findmespot.com/faces /trackerunit.jsp");
client.executeMethod(authpost1);
br = new BufferedReader(new InputStreamReader(authpost1.getResponseBodyAsStream()));
while(((readLine = br.readLine()) != null))
{
System.out.println(readLine);
}
}
}
}
catch(Exception ex)
{
System.out.println(ex.getMessage());
}
}
public static String getJsessionid(String responseText) /// retu
{
String jsession="";
int start_index= responseText.indexOf("ASP.NET_SessionId=");
if(start_index!=-1)
{
jsession= responseText.substring(start_index+11);
}
int last_index=jsession.indexOf("\"");
if(last_index!=-1)
jsession=jsession.substring(0,last_index);
return jsession;
}
public static String getNexthref(String inputhref)
{
String result_href="";
int start_index=inputhref.indexOf("href='");
if(start_index!=-1)
{
result_href=inputhref.substring(start_index+6);
}
int last_index=result_href.indexOf("'");
if(last_index!=-1)
result_href=result_href.substring(0,last_index);
return result_href;}}
import java.net.MalformedURLException;
导入org.apache.commons.httpclient.*;
导入org.apache.commons.httpclient.cookie.CookiePolicy;
导入org.apache.commons.httpclient.cookie.CookieSpec;
导入org.apache.commons.httpclient.methods.*;
导入org.apache.commons.httpclient.protocol.protocol;
导入org.apache.commons.httpclient.protocol.SSLProtocolSocketFactory;
导入org.apache.http.impl.client.DefaultHttpClient;
导入org.apache.commons.httpclient.HttpMethod;
导入org.apache.commons.httpclient.httpclient;
导入org.apache.commons.httpclient.Cookie;
导入java.io.BufferedReader;
导入java.io.FileOutputStream;
导入java.io.InputStreamReader;
导入java.net.URL;
公共类TestHttpClient{
公共静态字符串formpostrl=”http://mims.com/" ;
公共静态字符串登录\u站点=”https://sso.mims.com/Account/SignIn";
静态最终int登录端口=80;
publicstaticvoidmain(字符串[]args)引发畸形的DurLexException
{
字符串nextHref=“”;
HttpClient=新的HttpClient();
HttpMethod authGetmethod=新的GetMethod(“https://sso.mims.com/Account/SignIn");
setRequestHeader(“用户代理”、“Mozilla/5.0(Windows NT 5.1;rv:9.0.1)Gecko/20100101 Firefox/9.0.1”);
setRequestHeader(“Accept”,“text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8”);
setRequestHeader(“接受语言”,“en-us,en;q=0.5”);
setRequestHeader(“接受编码”、“gzip、deflate”);
setRequestHeader(“接受字符集”,“ISO-8859-1,utf-8;q=0.7,*;q=0.7”);
setRequestHeader(“保持活动状态”、“300”);
setRequestHeader(“连接”,“保持活动”);
//setRequestHeader(“Referer”https://login.findmespot.com/faces/welcome.jsp");
尝试
{
//发送第一个请求以捕获cookie信息
int status=client.executeMethod(authGetmethod);
BufferedReader br=新的BufferedReader(新的InputStreamReader(authGetmethod.getResponseBodyAsStream());
字符串str=“”;
字符串resultJsessionid=“”;
而((str=br.readLine())!=null)
{
if(str.indexOf(“ASP.NET_SessionId=”)!=-1)
{
//捕获会话ID
resultJsessionid=getJsessionid(str);
打破
}
}
//释放最终登录请求的连接
authGetmethod.releaseConnection();
client.getParams().setCookiePolicy(CookiePolicy.BROWSER_兼容性);
Cookie[]cookies=(Cookie[])client.getState().getCookies();
for(int i=0;iCookie: ASP.NET_SessionId, Value: s3fiwpzoyblxnyk4qx0o22n5, IsPersistent?: false, Expiry Date: null, Comment: null
Jan 04, 2012 1:22:43 PM org.apache.commons.httpclient.HttpMethodBase processResponseHeaders
WARNING: Cookie rejected: "BALANCEID=mycluster2.node3". Illegal path attribute "/resources". Path of origin: "/"
Login form post: HTTP/1.1 200 OK
‹
$(w‚Ù¥WéÝ™á^ðá6ñQ
ÿðÑ°,´¨fë2‡LLÈþQNù¤]È¡¡4?ú…ËI³:”F~È¿¦xìëvLȹ÷´¦Ü|¬ÜH¾|3%†ä°ì.$i€F3'_œ‚ñ#AOþí`üCA•þ?ìq›Cö©ùÌÓÑÐÌATk|‚ɧ
ûx,òþŒ!ïá‹xÖ~„ ‚TõJdAÿáî/<x]¥à!Á¦ö@ž¾°µè|‚‡Æ€DKû3úEâʳ§Q¶¦?Wô)éu’$ŽkI³¥”.[O Ö¬zÍ¿9ÊwÞ•ôƒþhÚšþñ?Ú•gzžQüHc¢^…\:â˼n)‡Qšé^?‚*©!“Ï’³ÎÑߎœHVÒxh˜>iúƒ !Xì#Ž”?£@—‰@?T-~DÄ¡ì£\·.÷U(L$í·$Jan 04, 2012 1:22:53 PM org.apache.commons.httpclient.SimpleHttpConnectionManager getConnectionWithTimeout
WARNING: SimpleHttpConnectionManager being used incorrectly. Be sure that HttpMethod.releaseConnection() is always called and that only one thread and/or method is using this connection manager at a time.
Jan 04, 2012 1:22:56 PM org.apache.commons.httpclient.HttpMethodBase processResponseHeaders
WARNING: Cookie rejected: "BALANCEID=mycluster2.node3". Illegal path attribute "/resources". Path of origin: "/"
‹
WARNING: Cookie rejected: "BALANCEID=mycluster2.node3". Illegal path attribute "/resources"