复制代码代码如下:
حزمة com.lkb.test ؛
استيراد java.util.arraylist ؛
استيراد java.util.hashmap ؛
استيراد java.util.iterator ؛
استيراد java.util.list ؛
استيراد java.util.map ؛
استيراد org.apache.http.httpresponse ؛
استيراد org.apache.http.client.ResponseHandler ؛
استيراد org.apache.http.client.entity.urlencodedformentity ؛
استيراد org.apache.http.client.methods.httpget ؛
استيراد org.apache.http.client.methods.httppost ؛
استيراد org.apache.http.impl.client.basicResponseHandler ؛
استيراد org.apache.http.impl.client.defaulthttpclient ؛
استيراد org.apache.http.message.basicnamevaluepair ؛
استيراد org.apache.http.message.bufferedheader ؛
استيراد org.apache.http.protocol.http ؛
استيراد com.util.constant ؛
الطبقة العامة jd {
// عناصر التكوين
redirecturl static static static الخاص = "http://order.jd.com/center/list.action" ؛
سلسلة static private loginurl = "http://passport.jd.com/uc/login" ؛
// لا تغير عنوان URL التالي
سلسلة ثابتة خاصة Renrenloginurl = "https://passport.jd.com/uc/loginservice" ؛
// يتم استخدام httpclient في جلسة واحدة
الاستجابة الخاصة httpresponse ؛
private defaulthttpclient httpclient = new defaulthttpclient () ؛
الخريطة العامة <string ، string> getParams () {
خريطة <string ، string> map = new hashmap <string ، string> () ؛
String str = getText (loginurl) ؛
String StrS1 [] = str.split ("name =/" uuid/"value =/" ") ؛
String StrS2 [] = StrS1 [1] .Split ("/"/> ") ؛
String uuid = strs2 [0] ؛
map.put ("uuid" ، uuid) ؛
System.out.println (StrS2 [0]) ؛
String str3s [] = strs1 [1] .split ("<span class =/" clr/"> </span> <type type =/" hidden/"name =/" ") ؛
String Strs4 [] = str3s [1] .Split ("/>") ؛
String StrS5 [] = StrS4 [0] .trim (). split ("/" ") ؛
مفتاح السلسلة = StrS5 [0] ؛
قيمة السلسلة = strs5 [2] ؛
map.put (المفتاح ، القيمة) ؛
خريطة العودة
}
تسجيل الدخول المنطقي الخاص () {
خريطة الخريطة = getParams () ؛
httppost httpost = new httppost (renrenloginurl) ؛
// جميع المعلمات تنشر إلى موقع الويب
قائمة <SbassNameValUepair> nvps = new ArrayList <SbarnameValUepair> () ؛
nvps.add (New BasicNameValuePair ("returnurl" ، redirecturl)) ؛
nvps.add (new BasicNameValuePair ("loginname" ، constant.username)) ؛
nvps.add (new BasicNameValuePair ("nloginpwd" ، constant.password)) ؛
nvps.add (New BasicNameValuePair ("loginpwd" ، constant.password)) ؛
iterator it = map.keyset (). iterator () ؛
بينما (it.hasnext ()) {
مفتاح السلسلة = it.next (). toString () ؛
قيمة السلسلة = map.get (مفتاح) .ToString () ؛
nvps.add (New BasicNameValuePair (مفتاح ، قيمة)) ؛
}
يحاول {
httpost.setentity (urlencodedformentity ((قائمة <؟ تمديد org.apache.http.namevaluepair>) nvps ، http.utf_8)) ؛
استجابة = httpclient.execute (httpost) ؛
} catch (استثناء e) {
E.PrintStackTrace () ؛
العودة كاذبة
} أخيراً {
httpost.abort () ؛
}
العودة صحيح.
}
سلسلة خاصة getRedirectLocation () {
BufferedHeader locationheader = (BufferedHeader) استجابة. getFirStheader ("الموقع") ؛
if (locationheader == null) {
العودة لاغية.
}
return locationheader.getValue () ؛
}
سلسلة خاصة getText (string redirectlocation) {
httpget httpget = new httpget (redirectlocation) ؛
ResponseHandler <String> reponseHandler = New BasicResponseHandler () ؛
سلسلة استجابة = "" ؛
يحاول {
استجابة = httpclient.execute (httpget ، desponseHandler) ؛
} catch (استثناء e) {
E.PrintStackTrace () ؛
استجابة = خالية ؛
} أخيراً {
httpget.abort () ؛
//httpclient.getConnectionManager (). stapdown () ؛
}
إرجاع الاستجابة ؛
}
public printtext () {
if (login ()) {
System.out.println (getText (redirecturl)) ؛
string redirectlocation = getRedirectLocation () ؛
if (redirectlocation! = null) {
System.out.println (getText (RedirectLocation)) ؛
}
}
}
الفراغ الثابت العام الرئيسي (سلسلة [] args) {
JD Renren = New JD () ؛
//renren.getParams () ؛
Renren.printtext () ؛
}
}