java模拟安卓get请求,Java模拟HTTP Get Post请求实现论坛自动回帖功能
最近想自动发帖回帖,拿某论坛试验了一下,发现可行,不过后续没有再使用,以免影响论坛正常运行。
1、帖子链接的格式为
http://bbs.***.***.**/forum.php?mod=viewthread&tid=774210
最后面774210数字变化, 就可以得到不同的帖子
2、防止帖子发表会又被删了的情况, 进行判断帖子是否存在
3、递增后面的 id 数字, 对每个链接做回帖的 POoqYoJST 请求
重难点
回帖需要用户登录信息
一种是利用Cookie
另一种是进行模拟登录
本文采用前者
判断 url 对应的帖子是否存在有可能用户发了帖子,比如 url 为http://bbs.***.***.**/forum.php?mod=viewthread&tid=774200
后来该帖子用户删除了或者被管理员删除了,虽然帖子不在了,但是该 tid=774200 还是存在的
public static boolean isExist(int id) {
String tmpPath = baseRefer + id;
URL url;
try {
url = new URL(tmpPath);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.addRequestProperty("Content-Type", "text/html; charset=UTF-8");
con.addRequestProperty(
"User-Agent",
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36");
con.addRequestProperty("Referer", "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");
if (info.contains("抱歉,指定的主题不存在或已被删除或正在被审核")) {
System.out.println("id=" + id + "帖子存在或已被删除!");
return false;
}
}
} catch (MalformedURLException e
模拟发帖
代码比较简单,注意事项是找到自己的Cookie,赋给String yourCookeie
用post发送一个回帖,回帖信息在 mapData.put("message", "友情帮顶了") 中
private static final String baseRefer = "http://bbs.**.**.**/forum.php?mod=viewthread&tid=";
private static final String yourCookeie = "Q8qA_2132_saltkey=**; Q8qA_2132_lastvisit=****3699;";
public static void main(String[] args) {
int startId = 774210; // you need change
for (int i = 0; i < 100; i++) {
postMessage(startId);
startId++;
}
}
public static void postMessage(int id) {
if (!isExist(id)) {
return;
}
String tmpPath = baseRefer + id;
StringBuilder path = new StringBuilder(tmpPath);
Map mapData = new LinkedHashMap();
mapData.put("mod", "poshttp://www.cppcns.comt");
mapData.put("action", "reply");
mapData.put("replysubmit", "yes");
mapData.put("infloat", "yes");
mapData.put("handlekey", "fastpost");
mapData.put("inajax", "1");
mapData.put("message", "友情帮顶了");
mapData.put("formhash", "86ec5d81");
try {
for (Map.Entry 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("Content-Length",
String.valueOf(path.length()));
con.setRequestProperty(
"User-Agent",
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.104 Safari/537.36");
con.setRequestProperty("Cookie", yourCookeie);
con.setDoOutput(true);
OutputStream outStr = con.getOutputStream();
outStr.w
还有一个工具方法,将输入流转化为字节
class StreamTool {
public static byte[] read(InputStream inputStr) throws Exception {
ByteArrayOutputStream outStr = new ByteArrayOutputStream();
// TODO Auto-generated method stub
byte[] buffer = new byte[1024];
int len = 0;
while ((len = inputStr.read(buffer)) != -1) {
outStr.write(buffer, 0, len);
}
inputStr.close();
return oqYoJoutStr.toByteArray();
}
}
效果图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
本文标题: Java模拟HTTP Get Post请求实现论坛自动回帖功能
本文地址: http://www.cppcns.com/ruanjian/java/162587.html
java模拟安卓get请求,Java模拟HTTP Get Post请求实现论坛自动回帖功能相关推荐
- 夜神模拟器模拟安卓测试_使用模拟进行测试
夜神模拟器模拟安卓测试 如果使用正确的方法,模拟对象将非常有用. 我在需要驱动软件开发使用的帖子中分享了一些使用Mock Objects的经验. 在这篇文章中,我分享了两件事 –使用模拟进行基于合同的 ...
- Java爬虫(二)-- httpClient模拟Http请求+jsoup页面解析
博客 学院 下载 GitChat TinyMind 论坛 APP 问答 商城 VIP会员 活动 招聘 ITeye 写博客 发Chat 传资源 登录注册 原 Java爬虫(二)-- httpClient ...
- java 模拟多线程并发_Java中模拟同时并发请求
有时需要测试一下某个功能的并发性能,又不要想借助于其他工具,索性就自己的开发语言,来一个并发请求就最方便了. java中模拟并发请求,自然是很方便的,只要多开几个线程,发起请求就好了.但是,这种请求, ...
- java版安卓按键精灵_纯Java实现跨平台鼠标键盘模拟、找图找色,Java版按键精灵...
由原本的Java使用JNI调用dll实现模拟辅助操作,升级到纯Java来实现,最新:https://github.com/xnx3/xnx3 仙人辅助_寻仙自动打怪 /** * 鼠标.键盘.延迟等基本 ...
- java之学习记录 5 - 1 - 模拟拉勾项目介绍与后台系统搭建
项目架构(此文章只供个人学习的记录) 1 项目介绍 拉勾教育后台管理系统,是提供给拉勾教育的相关业务人员使用的一个后台管理系统, 业务人员可以在这个后台管理系统中,对课程信息.讲师信息. 学员信息等数 ...
- java web学习总结(二十一) -------------------模拟Servlet3.0使用注解的方式配置Servlet...
一.Servlet的传统配置方式 在JavaWeb开发中, 每次编写一个Servlet都需要在web.xml文件中进行配置,如下所示: 1 <servlet> 2 <servlet- ...
- Java程序模拟QQ空间登录 - 并模拟刷说说的赞(图文) 注意:腾讯修改了加密算法,已失效(2015-01-31)
Java程序模拟QQ空间登录 - 并模拟刷说说的赞 背景:在2013-10-25的一天,有个friend在QQ问我:"post登陆QQ空间抓取不到post的数据".于是故事就开始了 ...
- java模拟登录百度_模拟登陆百度的Java实现
常常需要爬取百度统计出来的数据,难免要进行百度的模拟登陆!现将程序贴出来,供他人也供自己以后使用: ? ? package org.baidu; import java.util.List; impo ...
- java 12306 模拟登陆_请教java尝试模拟登录12306时遇到的一个问题
展开全部 首先12306网站前32313133353236313431303231363533e78988e69d8331333363386133缀为"https://" 表明是用 ...
- java+postgis实现根据两点生成模拟轨迹gps数据
java+postgis实现根据两点生成模拟轨迹gps数据 文章目录 java+postgis实现根据两点生成模拟轨迹gps数据 前言 一.实现流程 1.请求参数 2.功能流程 3.postgis重要 ...
最新文章
- 2017年终奖发放,程序员人均11776元排名第一!
- 缓冲区溢出漏洞攻击之用户登录
- Linux系统编程2:基础篇之详解Linux中的权限问题
- elasticsearch 部署
- Linux AIO的新归宿:io_uring(介绍,系统调用)
- 机器学习6/100天-Logistic实践
- Laravel Cache 的缓存文件在到期后是否会自动删除
- 线程安全的atomic wrapper classes例子
- CS229学习笔记(3)逻辑回归(Logistic Regression)
- Android 应用的启动方式
- 数据结构之队列java版
- yum install mysql-server 指定版本_mysql 指定版本安装
- 关于备考软考过程中历年真题的说明
- python汉化包放哪_python 汉化
- nova红a6se升级鸿蒙,华为nova 8 SE配置揭晓:麒麟芯片到底是没了
- [Vue warn]: Error in callback for watcher “lists“: “TypeError: Cannot read property ‘length‘ of unde
- N-Tiers開發方式(ASP/ASP.NET、VB6/VB.NET呼叫使用COM+元件)
- logcat日志的五种级别
- 友盟+吕志国:数据智能让天下没有难做的营销
- 8. 监督学习的统计理论