В этой статье Java моделирует HTTP GET POST запросов и автоматическую функцию Campus BBS для вашей ссылки. Конкретный контент заключается в следующем
Дизайнерские идеи
Найдите коллекцию ссылок на почту и измените номер в конце, и вы можете получить разные сообщения
Предотвратить удаление постов и определить, существует ли пост
Итерация через эту коллекцию и сделайте запрос сообщения, чтобы ответить на каждую ссылку
Ключевые моменты
Примечание:
Код
Код относительно прост. Предосторожность - найти собственное печенье. Назначьте yourkookie, чтобы натянуть свой куки и запустить его напрямую.
Главное, чтобы определить, существует ли пост или нет. Это запрос на получение, а затем отправьте ответ с сообщением. Ответное сообщение жестко кодируется, так как «дружелюбный помог» в mapdata.put («Сообщение», «Дружественное помогло»), вы можете изменить его
Импорт java.io.bytearrayoutputstream; импорт java.io.ioexception; импорт java.io.inputstream; импорт java.io.outputstream; импорт java.io.unsupportedencodingexception; import java.net.httpurlConection; импорт java.net.malformedure; java.net.urlencoder; import java.util.linkedhashmap; import java.util.map; открытый класс Inter {private Static Final String Baserefer = "http://rs.xidian.edu.cn/forum.phpef?mod=viewthread&tid="; Частная статическая конечная строка yourcookie = "q8qa_2132_saltkey = g1njjjj3o; q8qa_2132_lastvisit = 1438243699; q8qa_2132_lastcheckfeed = 256730%7C1438252008; Q8QA_2132_Auth = e11aehhxplgtypfdk72yjzegjhl1v70cuxxdtj71vbu2dyuh%2bqhw3pgojhsfxfjbvgnsvyfg1v%2bqld0lt8kg6j%2b40w0; Q8QA_2132_ST_T = 256730%7C1438571068%7C51F8A322985E44F65FF1143329E6779A; Q8QA_2132_MYREPEAT_RR = R0; TJPCTRL = 1438781938176; Q8QA_2132_ST_P = 256730%7C1438781224%7C7A73EF608DC3CAF733308D63639B3BD0; Q8qa_2132_sid = znfqqn; public static void main (string [] args) {int startId = 774210; // вам нужно изменение для (int i = 0; i <100; i ++) {postmessage (startId); startId ++; }} public static boolean isexist (int id) {string tmppath = baserefer + id; URL URL; try {url = new url (tmppath); Httpurlconnection con = (httpurlconnection) url.openconcenection (); con.addrequestproperty ("content-type", "text/html; charset = utf-8"); con.addrequestproperty («Пользовательский агент», Mozilla/5.0 (Windows NT 6.1) AppleWebkit/537.36 (khtml, как гекко) Chrome/38.0.2125.104 Safari/537,36 "); con.addrequestproperty («Реферат», «http://t.dianpance.com/register»); con.setrequestmethod ("Get"); if (con.getResponsecode () == 200) {inputStream inputstr = con.getInputStream (); String info = new String (StreamTool.read (inputStr), "UTF-8"); if (info.contains («Извините, указанная тема не существует или была удалена или рассматривается»)) {System.out.println ("id =" + id + "Пост существует или был удален!"); вернуть ложь; }}} catch (malformedurlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } catch (ioException e) {// todo автоматически сгенерированный блок e.printstacktrace (); } catch (Exception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } вернуть true; } public static void postmessage (int id) {if (! isexist (id)) {return; } String tmppath = baserefer + id; StringBuilder Path = new StringBuilder (tmppath); Map <string, string> mapData = new LinkedHashmap <string, string> (); mapdata.put ("mod", "post"); mapdata.put ("action", "ответить"); mapdata.put ("replysubmit", "да"); mapdata.put ("infoat", "да"); mapdata.put ("handlekey", "fastpost"); mapdata.put ("inajax", "1"); mapdata.put («Сообщение», «Поддержка дружбы»); mapdata.put ("formhash", "86ec5d81"); try {for (map.entry <string, string> mapent: mapdata.entryset ()) {path.append ("&"); path.append (mapent.getkey () + "="); path.append (urlencoder.encode (mapent.getvalue (), "utf-8")); } Url url = new URL (path.toString ()); Httpurlconnection con = (httpurlconnection) url.openconcenection (); con.setrequestmethod ("post"); con.setRequestProperty («контент-тип», «Приложение/X-WW-Form-UrlencoDed»); con.setRequestProperty («Длина контента», string.valueof (path.length ())); con.setrequestproperty («пользователь-агент», «Mozilla/5.0 (Windows NT 6.1) AppleWebkit/537.36 (khtml, как гекко) Chrome/38.0.2125.104 Safari/537,36"); con.setrequestproperty ("cookie", yourcookie); con.setDoOutput (true); OutputStream outstr = con.getOutputStream (); outstr.write (path.toString (). GetBytes ()); if (con.getResponsecode () == 200) {inputStream inputstr = con.getInputStream (); String info = new String (StreamTool.read (inputStr), "UTF-8"); System.out.println ("in id =" + id + "успешно опубликовано!"); try {thread.sleep (20 * 1000); } catch (прерванная экспрессия e) {// todo автоматически сгенерированный блок e.printstacktrace (); }}} catch (unsupportedEncodingexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } catch (malformedurlexception e) {// todo автоматически сгенерированный блок e.printstacktrace (); } catch (ioException e) {// todo автоматически сгенерированный блок e.printstacktrace (); } catch (Exception e) {// todo автоматически сгенерированный блок e.printstacktrace (); }}} класс StreamTool {public Static Byte [] Read (InputStream InputSt) Throws Exception {BytearRayOutputStream OUTSTR = new BytearRayOutputStream (); // TODO Автогенерированный метод загрязняет байт [] буфер = новый байт [1024]; int len = 0; while ((len = inputstr.read (buffer))! = -1) {outstr.write (buffer, 0, len); } inputstr.close (); вернуть outstr.tobytearray (); }}Диаграмма воспроизведения
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для обучения каждого и обеспечить автоматический ответ на посты.