Este artigo compartilha o Java simula o HTTP GET POST PEDIDOS E CAMPUS BBS AUTOMÁTICO RESPOND FUNCTION para sua referência. O conteúdo específico é o seguinte
Idéias de design
Encontre a coleção de links de postagem e altere o número no final, e você pode obter postagens diferentes
Impedir que os posts sejam excluídos novamente e determine se a postagem existe
Itera através desta coleção e faça uma solicitação de postagem para responder a cada link
Pontos -chave
Observação:
Código
O código é relativamente simples. A precaução é encontrar seu próprio cookie. Atribua YourCookie para cordas do YourCookie e execute -o diretamente.
O principal é determinar se a postagem existe ou não. Esta é uma solicitação GET e, em seguida, envie uma resposta com a postagem. A mensagem de resposta é codificada como "amigável ajudado" em mapdata.put ("mensagem", "amigável ajudado"), você pode modificá -lo
importar java.io.byteArrayOutputStream; importar java.io.ioException; importar java.io.inputStream; importar java.io.outputStream; importar java.io.unsupportEdEncodingException; import java.net.httpurlconnection; importecodingExcept; java.net.urlencoder; importar java.util.linkedhashmap; importar java.util.map; public class Inter {private static final string basefererfer = "http://rs.xidian.edu.cn/forum.php?mod=viewthread&tid="; String final privada final YourCookie = "Q8QA_2132_SALTKEY = G1NJJJ3O; Q8QA_2132_LASTVISIT = 1438243699; Q8QA_2132_LASTCHECKFEED = 256730%7C1438252008; Q8qa_2132_auth = e11aehhxplgtypfdk72yjzzegjhl1v70cuxxdtj71vbu2dyuh%2bqhw3pgojhsfxfjbvgnsvyfg1v%2bqld0lt8kg6j%2B4B4B4B4B4B4bgN0wsvy; 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; // você precisa mudar para (int i = 0; i <100; i ++) {postMessage (startId); startId ++; }} public static boolean isexist (int id) {string tmppath = baserefer + id; URL URL; tente {url = novo url (tmppath); HttpurlConnection con = (httpurlConnection) url.openconnection (); con.addrequestProperty ("conteúdo-tipo", "text/html; charset = utf-8"); Con.AddRequestProperty ("User-Agent", "Mozilla/5.0 (Windows NT 6.1) Applewebkit/537.36 (KHTML, como Gecko) Chrome/38.0.2125.104 Safari/537.36"); con.addrequestProperty ("referente", "http://t.dianping.com/register"); con.setRequestMethod ("get"); if (con.getResponsecode () == 200) {inputStream inputStr = con.getInputStream (); String info = new String (Streamtool.read (InputStr), "UTF-8"); se (info.contains ("Desculpe, o tópico especificado não existe ou foi excluído ou está sendo revisado")) {System.out.println ("id =" + id + "a postagem existe ou foi excluída!"); retornar falso; }}} catch (malformedUrlexception e) {// TODO GATE GENERADO AUTOGERATO E.PRINTSTACKTRACE (); } catch (ioexception e) {// TODO GATO GENERADO AUTOMENTADO BLOCO E.PRINTSTACKTRACE (); } Catch (Exceção e) {// TODO BLOCO DE CAPAGEM AUTOMENTADO E.PRINTSTACKTRACE (); } retornar true; } public static void PostMessage (int id) {if (! isexist (id)) {return; } String tmppath = BasErefer + id; StringBuilder Path = new StringBuilder (tmppath); Mapa <string, string> mapData = new LinkedHashmap <string, string> (); mapData.put ("mod", "post"); mapData.put ("ação", "resposta"); mapData.put ("ResponderSubMit", "Sim"); mapData.put ("Infloat", "Sim"); mapData.put ("HandleKey", "FastPost"); mapData.put ("inajax", "1"); mapData.put ("mensagem", "suporte de amizade"); mapData.put ("formhash", "86ec5d81"); tente {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.openconnection (); Con.SetRequestMethod ("post"); Con.SetRequestProperty ("Content-Type", "Application/X-Www-Form-Urlencoded"); Con.SetRequestProperty ("Length-comprimento", String.ValueOf (Path.Length ())); Con.SetRequestProperty ("User-Agent", "Mozilla/5.0 (Windows NT 6.1) Applewebkit/537.36 (KHTML, como Gecko) Chrome/38.0.2125.104 Safari/537.36"); Con.SetRequestProperty ("Cookie", YourCookie); Con.SetdoOutput (true); OutputStream exttr = con.getOutputStream (); strstr.Write (path.toString (). getBytes ()); if (con.getResponsecode () == 200) {inputStream inputStr = con.getInputStream (); String info = new String (Streamtool.read (InputStr), "UTF-8"); System.out.println ("em id =" + id + "publicado com sucesso!"); tente {thread.sleep (20 * 1000); } catch (interruptedException e) {// TODO BLOCO DE CATCH AUTOGERATIDO E.PRINTSTACKTRACE (); }}} Catch (UnsupportEdEncodingException e) {// TODO BLOCO DE CATAGEM AUTOMENTADO E.PRINTSTACKTRACE (); } catch (malformedurlexception e) {// TODO BLOCO DE CATAGEM AUTOMENTADO E.PRINTSTACKTRACE (); } catch (ioexception e) {// TODO GATO GENERADO AUTOMENTADO BLOCO E.PRINTSTACKTRACE (); } Catch (Exceção e) {// TODO BLOCO DE CAPAGEM AUTOMENTADO E.PRINTSTACKTRACE (); }}} classe streamtool {public static byte [] read (inputStream inputStr) lança a exceção {bytearrayoutputStream exttr = new ByteArrayOutputStream (); // TODO Método Gerado de Auto-Generado Byte [] buffer = novo byte [1024]; int len = 0; while ((len = inputStr.read (buffer))! = -1) {ssttr.Write (buffer, 0, len); } inputStr.close (); return sstr.tobyteArray (); }}Diagrama de reprodução
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e ativar a resposta automática às postagens.