复制代码代码如下:
paquete com.lkb.test;
import java.util.arrayList;
import java.util.hashmap;
import java.util.iterator;
import java.util.list;
import java.util.map;
importar org.apache.http.httpresponse;
importar org.apache.http.client.ResponseHandler;
importar org.apache.http.client.entity.urlencodedformentity;
importar org.apache.http.client.methods.httpget;
importar org.apache.http.client.methods.httppost;
importar org.apache.http.impl.client.basicResponseHandler;
importar org.apache.http.impl.client.defaulthttpClient;
importar org.apache.http.message.BasicNameValuePair;
importar org.apache.http.message.bufferedheader;
importar org.apache.http.protocol.http;
import com.util.constant;
clase pública JD {
// Los elementos de configuración
cadena estática privada redirecturl = "http://order.jd.com/center/list.action";
cadena estática privada loginurl = "http://passport.jd.com/uc/login";
// No cambie la siguiente URL
cadena estática privada Renrenloginurl = "https://passport.jd.com/uc/loginservice";
// El httpclient se usa en una sesión
Respuesta privada de httpresponse;
privado deftttpClient httpClient = new DeFaulThttpClient ();
Mapa público <string, string> getParams () {
Map <string, string> map = new HashMap <String, String> ();
Cadena str = getText (Loginurl);
Cadena strs1 [] = str.split ("name =/" uuid/"value =/" ");
Cadena strs2 [] = strs1 [1] .split ("/"/> ");
Cadena uuid = strs2 [0];
map.put ("uuid", uuid);
System.out.println (strs2 [0]);
Cadena str3s [] = strs1 [1] .split ("<span class =/" clr/"> </span> <input type =/" hidden/"name =/" ");
Cadena strs4 [] = str3s [1] .split ("/>");
Cadena strs5 [] = strs4 [0] .trim (). Split ("/" ");
Tecla de cadena = strs5 [0];
Valor de cadena = strs5 [2];
map.put (clave, valor);
mapa de retorno;
}
Iniciar sesión booleano privado () {
Mapa map = getParams ();
Httppost httPost = new httpPost (Renrenloginurl);
// Todos los parámetros publican en el sitio web
List <BasicNameValuePair> nvps = new ArrayList <BasicNameValuePair> ();
nvps.add (nuevo BasicNameValuePair ("returnurl", redirecturl));
nvps.add (nuevo BasicNameValuePair ("LoginName", Constant.Username));
nvps.add (nuevo BasicNameValuePair ("nloginpwd", constant.password));
nvps.add (nuevo BasicNameValuePair ("LoginPwd", Constant.Password));
Iterator it = map.KeySet (). Iterator ();
while (it.hasnext ()) {
String key = it.next (). ToString ();
Valor de cadena = map.get (key) .ToString ();
nvps.add (nuevo BasicNameValuePair (clave, valor));
}
intentar {
httpost.setEntity (nueva URLEncodedFormentity ((List <? Extiende org.apache.http.nameValuePair>) nvps, http.utf_8));
respuesta = httpClient.Execute (httpost);
} Catch (Exception e) {
E.PrintStackTrace ();
devolver falso;
} finalmente {
httpost.abort ();
}
devolver verdadero;
}
cadena privada getRedirectLocation () {
Bufferedheader ubicación header = (bufferedheader) respuesta.getFirstheader ("ubicación");
if (ubicaciónHeader == null) {
regresar nulo;
}
Return UbicationHeader.getValue ();
}
String private getText (string redirectLocation) {
Httpget httpget = new httpget (redirectLocation);
ResponseHandler <String> ResponseHandler = new BasicResponseHandler ();
String ResponseBody = "";
intentar {
ResponseBody = httpClient.Execute (httpget, ResponseHandler);
} Catch (Exception e) {
E.PrintStackTrace ();
ResponseBody = nulo;
} finalmente {
httpget.abort ();
//httpclient.getConnectionManager (). Shutdown ();
}
RETURN RESPONDBODY;
}
public void printText () {
if (login ()) {
System.out.println (getText (redirecturl));
Cadena redirectLocation = getRedirectLocation ();
if (redirectLocation! = null) {
System.out.println (getText (redirectLocation));
}
}
}
public static void main (string [] args) {
JD Renren = nuevo JD ();
//renren.getParams ();
Renren.printText ();
}
}