httpclient يحاكي تسجيل الدخول (استخدم js لتعيين ملفات تعريف الارتباط)
انسخ رمز الكود كما يلي:
<أتش تي أم أل>
<meta http-equiv='Content-Type' content='text/html;
<link rel=stylesheet type=text/css href='/bbs.css'>
<script>document.cookie='utmpnum=51;path=/;domain=.' + window.location.host</script>
<script>document.cookie='utmpkey=20154732;path=/;domain=.' + window.location.host</script>
<script>document.cookie='utmpuserid=yay;path=/;domain=.' + window.location.host</script>
<meta http-equiv='Refresh' content='0;
h4ttpclient 4.3:
أبسط طريقة هي تخصيص httpclient من خلال ملف تعريف الارتباط الذي تم الحصول عليه، وفقًا للمثال أعلاه، تكون الطريقة كما يلي:
انسخ رمز الكود كما يلي:
CookieStore cookieStore = new BasicCookieStore();
لـ (int i = 0; i < 3; i++) {
اسم السلسلة؛
قيمة السلسلة؛
int flag=s.indexOf("document.cookie");
s=s.substring(flag+17);
flag=s.indexOf('=');
name=s.substring(0, flag);
value=s.substring(flag+1, s.indexOf(';'));
ملف تعريف الارتباط BasicClientCookie = BasicClientCookie الجديد (الاسم،
قيمة)؛
cookie.setVersion(0);
cookie.setDomain(".www.zju88.org"); // يتوافق عنوان URL هذا مع القيمة المرجعة لـ <span style="font-family: Arial, Helvetica, sans-serif;">window.location.host</ فترة>
cookie.setPath("/");
cookieStore.addCookie(cookie);
}
// قم بتعيين المتجر
CloseableHttpClient httpclient = HttpClients.custom()
.setDefaultCookieStore(متجر ملفات تعريف الارتباط)
.يبني()؛
الروبوت:
لقد بحثت لفترة طويلة ولم أتمكن من العثور على واجهة برمجة التطبيقات المتوافقة مع الطريقة المذكورة أعلاه، ولا يمكنني سوى إضافة ملفات تعريف الارتباط قبل كل زيارة.
انسخ رمز الكود كما يلي:
سلسلة ملفات تعريف الارتباط = ""؛
لـ (int i = 0; i < 3; i++) {
اسم السلسلة؛
قيمة السلسلة؛
int flag=s.indexOf("document.cookie");
s=s.substring(flag+17);
flag=s.indexOf('=');
name=s.substring(0, flag);
value=s.substring(flag+1, s.indexOf(';'));
ملف تعريف الارتباط +=الاسم +"="+value;
إذا (ط! = 2)
ملف تعريف الارتباط+=";";
}
/*
* في كل مرة تقوم فيها بالوصول إلى الشبكة
*/
HttpGet httpget = new HttpGet(url);
httpget.addHeader("Cookie",cookie);
// إذا كانت هناك ملفات تعريف ارتباط بالفعل في httpclient، فقد تحتاج إلى تعيين سياسة ملفات تعريف الارتباط الخاصة بـ httpclient للحصول على التفاصيل، يرجى التحقق من واجهة برمجة التطبيقات الرسمية (:
استجابة HttpResponse = httpclient.execute(httpget);
ملاحظة: إذا كنت تستخدم Java SE، فيمكنك أيضًا استخدام فئة htmlunit، والتي ستقوم بتنفيذ js.