论坛自动灌水(HTTP协议)--GET请求与POST请求的发送
来源:互联网 发布:爽肤水怎么用 知乎 编辑:程序博客网 时间:2024/05/21 03:26
关键点:
1.实现GET、POST请求的发送
2.维护session信息、cookie信息
3.与论坛发帖相关联
import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.URL;import java.net.URLConnection;import java.util.List;import java.util.Map;public class HTTPDemo {public String globalCookie="";/** * 向指定URL发送GET方法的请求 * * @param url * 发送请求的URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return URL 所代表远程资源的响应结果 */ public String sendGet(String url, String param,String cookie) { String result = ""; BufferedReader in = null; try { String urlNameString = url + "?" + param; URL realUrl = new URL(urlNameString); // 打开和URL之间的连接 URLConnection connection = realUrl.openConnection(); // 设置通用的请求属性 connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); connection.setRequestProperty("Cookie", cookie); // 建立实际的连接 connection.connect(); /* // 获取所有响应头字段 Map<String, List<String>> map = connection.getHeaderFields(); //遍历所有的响应头字段 for (String key : map.keySet()) { System.out.println(key + "--->" + map.get(key)); }*/ // 定义 BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader( connection.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } //获取cookie } catch (Exception e) { System.out.println("发送GET请求出现异常!" + e); e.printStackTrace(); } // 使用finally块来关闭输入流 finally { try { if (in != null) { in.close(); } } catch (Exception e2) { e2.printStackTrace(); } } return result; } /** * 向指定 URL 发送POST方法的请求 * * @param url * 发送请求的 URL * @param param * 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。 * @return 所代表远程资源的响应结果 */ public String sendPost(String url, String param,String cookie) { PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); conn.setRequestProperty("Cookie", cookie); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } //获取POST响应头部的set-cookie信息 Map<String,List<String>> map=conn.getHeaderFields(); List list=(List)map.get("Set-Cookie"); for(int i=0;i<list.size();i++){ String temp=list.get(i).toString(); String value[]=temp.split(";"); this.globalCookie += value[0]+";"; } } catch (Exception e) { System.out.println("发送 POST 请求出现异常!"+e); e.printStackTrace(); } //使用finally块来关闭输出流、输入流 finally{ try{ if(out!=null){ out.close(); } if(in!=null){ in.close(); } } catch(IOException ex){ ex.printStackTrace(); } } return result; } public static void main(String[] args) { // TODO Auto-generated method stub //phpwind:http://www.lianxi1.com/phpwind871/ HTTPDemo jhh=new HTTPDemo(); //发送 GET 请求---进入页面 String s=jhh.sendGet("http://www.lianxi1.com/phpwind871/", "",""); //发送POST请求---提交用户名,密码 String sr=jhh.sendPost("http://www.lianxi1.com/phpwind871/login.php", "pwuser=admin&pwpwd=000",""); //发送GET请求---进入版块 String s1=jhh.sendGet("http://www.lianxi1.com/phpwind871/thread.php", "fid=5",jhh.globalCookie); //发送GET请求---点击发表新帖 String s2=jhh.sendGet("http://www.lianxi1.com/phpwind871/post.php", "fid=5",jhh.globalCookie); //发送POST请求--提交帖子标题与内容 String sr2=jhh.sendPost("http://www.lianxi1.com/phpwind871/post.php", "atc_title=1234&atc_content=12356",jhh.globalCookie); // System.out.println(s); //System.out.println(sr); }}
0 0
- 论坛自动灌水(HTTP协议)--GET请求与POST请求的发送
- PHP发送HTTP请求(POST请求、GET请求)
- 发送Http请求(POST GET)的方法
- 发送Http请求(POST GET)的方法
- 发送Http请求(POST GET)的方法
- 发送Http请求(POST GET)的方法
- 发送Http请求(POST GET)的方法
- java发送http的get、post请求
- java发送http的get、post请求
- java发送http的get、post请求
- java发送http的get、post请求
- java发送http的get、post请求
- 发送Http请求(POST GET)的方法
- java发送http的get、post请求
- java发送http的get、post请求
- java发送http的get、post请求
- java发送http的get、post请求
- java发送http的get、post请求
- 算法作业13
- HDU
- socket的accept函数解析
- Kingbase和PostgreSQL中如何查看当前连接的进程信息
- OpenCV 玩九宫格数独(二):knn 数字识别
- 论坛自动灌水(HTTP协议)--GET请求与POST请求的发送
- sizeof结构体
- IDEA激活码及webstorm
- Bash内置命令test测试文件部分选项
- python中遇到的错误(二)
- Leetcode刷题(22)——确认是否存在两个子集使得其和相等
- java从入门到弃坑第九天
- bzoj 4476: [Jsoi2015]送礼物 二分答案+单调队列
- 总结——01背包问题 (动态规划算法)