أردت مؤخرًا النشر تلقائيًا والرد تلقائيًا. جربته مع منتدى ووجدت أنه كان ممكنًا ، لكن لم يتم استخدامه مرة أخرى في المستقبل لتجنب التأثير على التشغيل العادي للمنتدى.
1. تنسيق رابط البريد هو
http: //bbs.*** .**
يمكن الحصول على تغيير الرقم في نهاية 774210 عن طريق الحصول على منشورات مختلفة
2. منع حذف المنشور مرة أخرى ، وحدد ما إذا كان المنشور موجودًا
3. زيادة رقم الهوية بعد ذلك ، وقدم طلبًا آخر للرد على كل رابط
النقاط الرئيسية
يتطلب الرد معلومات تسجيل دخول المستخدم على المستخدم لاستخدام ملفات تعريف الارتباط
هناك طريقة أخرى لمحاكاة تسجيل الدخول
هذا المقال يتبنى السابق
تحديد ما إذا كان المنشور المقابل لعنوان URL موجود
من المحتمل أن يكون المستخدم قد نشر منشورًا ، على سبيل المثال ، عنوان URL هو http: //bbs.*** .**
في وقت لاحق ، تم حذف مستخدم المنشور أو حذفه من قبل المسؤول. على الرغم من أن المنشور قد انتهى ، إلا أن TID = 774200 لا يزال موجودًا.
isexist boolean الثابتة العامة (int id) {string tmppath = baserefer + id ؛ URL URL حاول {url = url جديد (tmppath) ؛ httpurlConnection con = (httpurlConnection) url.openconnection () ؛ Con.AddRequestProperty ("نوع المحتوى" ، "text/html ؛ charset = utf-8") ؛ Con.AddRequestProperty ("User-Agent" ، "Mozilla/5.0 (Windows NT 6.1) AppleWebkit/537.36 (KHTML ، مثل Gecko) Chrome/38.0.2125.104 Safari/537.36") ؛ Con.AddRequestProperty ("reparer" ، "http://t.dianping.com/register") ؛ consetRequestMethod ("get") ؛ if (con.getResPonsecode () == 200) {inputStream inputStr = con.getInputStream () ؛ info info = string new (dreamtool.read (inputStr) ، "UTF-8") ؛ إذا (info.contains ("آسف ، فإن الموضوع المحدد غير موجود أو تم حذفه أو تتم مراجعته"))) العودة كاذبة }}} catch (malformedurlexception e) {// todo catch catch e.printstacktrace () ؛ } catch (ioException e) {// todo acto catch block e.printstacktrace () ؛ } catch (استثناء e) {// todo catch e.printstacktrace () ؛ } catch (استثناء e) {// todo catch e.printstacktrace () ؛ } catch (استثناء e) {// todo catch e.printstacktrace () ؛ } catch (استثناء e) {// todo catch e.printstacktrace () ؛ } إرجاع صحيح ؛}محاكاة النشر <br /> الرمز بسيط نسبيًا ، والاحتياط هو العثور
أرسل ردًا باستخدام Post ، ورسالة الرد موجودة في MapData.put ("Message" ، "Help Friendship")
Static Final Final String Baserefer = "http: //bbs.** .** 774210 ؛ // تحتاج إلى تغيير لـ (int i = 0 ؛ i <100 ؛ i ++) {postmessage (startId) ؛ StartId ++ ؛ }} postmessage postmessage postmessage الثابتة العامة (int) {if (! isExist (id)) {return ؛ } String tmppath = baserefer + id ؛ stringBuilder path = new StringBuilder (tmppath) ؛ خريطة <سلسلة ، string> mapData = new LinkedHashMap <string ، string> () ؛ mapData.put ("mod" ، "post") ؛ mapData.put ("الإجراء" ، "الرد") ؛ mapData.put ("replsubmit" ، "نعم") ؛ mapData.put ("infloat" ، "نعم") ؛ mapData.put ("handlekey" ، "fastpost") ؛ mapData.put ("inajax" ، "1") ؛ MapData.put ("Message" ، "SPERCENTREALD SUPPLY") ؛ mapData.put ("formhash" ، "86ec5d81") ؛ حاول {for (map.entry <string ، string> mapent: mapData.EntrySet ()) {path.append ("&") ؛ path.append (mapent.getKey () + "=") ؛ path.append (urlencoder.encode (mapent.getValue () ، "utf-8")) ؛ } url url = url new (path.toString ()) ؛ httpurlConnection con = (httpurlConnection) url.openconnection () ؛ consetRequestMethod ("post") ؛ Con.SetRequestProperty ("نوع المحتوى" ، "التطبيق/x-www-form-urlencoded") ؛ Con.SetRequestProperty ("طول المحتوى" ، string.valueof (path.length ())) ؛ ConsetRequestProperty ("User-Agent" ، "Mozilla/5.0 (Windows NT 6.1) AppleWebkit/537.36 (KHTML ، مثل Gecko) Chrome/38.0.2125.104 Safari/537.36") ؛ Con.SetRequestProperty ("ملف تعريف الارتباط" ، yourcookie) ؛ consetDooutput (صواب) ؛ OutputStream Outstr = con.getOutputStream () ؛ outstr.write (path.toString (). getBytes ()) ؛ if (con.getResPonsecode () == 200) {inputStream inputStr = con.getInputStream () ؛ info info = string new (dreamtool.read (inputStr) ، "UTF-8") ؛ System.out.println ("تم إرساله بنجاح في ID =" + ID + "!") ؛ حاول {thread.sleep (20 * 1000) ؛ } catch (interruptedException e) {// todo catch catch e.printstacktrace () ؛ }} catch (UnsupportedEncodingException e) {// todo catch catch e.printstacktrace () ؛ } catch (malformedurlexception e) {// todo catch catch e.printstacktrace () ؛ } catch (ioException e) {// todo acto catch block e.printstacktrace () ؛ } catch (استثناء e) {// todo catch e.printstacktrace () ؛ }} هناك أيضًا طريقة أداة تحول تدفقات الإدخال إلى بايت
Class StreamTool {public static byte [] read (inputStream inputStR) يلقي الاستثناء {bytearrayoutputstream outstr = جديد bytearrayoutputstream () ؛ // TODO تلقائيًا تلقائيًا بايت بايت [] buffer = new byte [1024] ؛ int len = 0 ؛ بينما ((len = inpectStR.Read (buffer))! = -1) {Outstr.Write (buffer ، 0 ، len) ؛ } inputstr.close () ؛ إرجاع outstr.tobytearray () ؛ }}صورة التكاثر:
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.