Java使用HttpPost模拟浏览器向服务器添加数据

使用浏览器工具查看请求url及请求头

package com.httpclient;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.Scanner;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
public class Main3 {
 static Random random = null;
 public int getBirthYear() {
 //生成随机年份
  int result = (int) (1975 + Math.random() * 15);
  return result;
 }
 
 public int getBirthMonth() {
 //生成随机月份
  int result = (int) (1 + Math.random() * 12);
  return result;
 }
 
 public int getBirthDay() {
 //生成随机日期
  int result = (int) (1 + Math.random() * 28);
  //random = null;
  return result;
 }
 
 public static void main(String[] args) {
  random = new Random(System.currentTimeMillis());
  Main3 main3 = new Main3();
  String _txtName = "";
  Scanner scanner = new Scanner(System.in);
  
  String _dtcBirthdate = main3.getBirthYear() + "-" + main3.getBirthMonth() + "-" + main3.getBirthDay();
  String _dtcReplyTime = "2015-" + "4-" + main3.getBirthDay(); 
  String _txtWhyfor = "什么程度构成犯罪";
  String _txtReplyOpinion = "轻伤以上";
  for (int i = 0; i < 10; i++) {
   random = new Random(System.currentTimeMillis());
   _dtcBirthdate = main3.getBirthYear() + "-" + main3.getBirthMonth() + "-" + main3.getBirthDay();
   _dtcReplyTime = "2015-" + "4-" + main3.getBirthDay(); 
   _txtName = scanner.next();
   System.out.print(_dtcBirthdate + "  ");
   System.out.println(_dtcReplyTime);
   post(_txtName, "1", _dtcBirthdate, "B0300", "2", _dtcReplyTime, _txtWhyfor, _txtReplyOpinion);
  }
 }
 //public static void main(String[] args ) {
 public static void post(String _txtName ,String _ddlSex,String _dtcBirthdate,String _txt_caseApplyItemTypeCode ,String _ddl_legalItemType,String _dtcReplyTime,String _txtWhyfor,String _txtReplyOpinion){
  String url = "
  HttpPost httpPost = new HttpPost(url);// 创建HttpPost对象
  List<NameValuePair> params = new ArrayList<NameValuePair>();
  String __VIEWSTATE = "/wEPDwUKLTk5NTEwODc4Mg9kFgICAw9kFiYC";//从浏览器中获取
  params.add(new BasicNameValuePair("__VIEWSTATE", __VIEWSTATE));
/*
  String _txtName = "杜芳芳";
  String _ddlSex = "2";//1男  2女
  String _dtcBirthdate = "1986-5-4";
  String _txt_caseApplyItemTypeCode = "M0101";//eg.离婚纠纷
  String _ddl_legalItemType = "1";//咨询事项类型 民事1  刑事2 行政3
  String _dtcReplyTime = "2015-4-1";//接受日期
  String _txtWhyfor = "离婚的程序";//咨询内容
  String _txtReplyOpinion = "可双方协商到民政局登记也可到法院起诉离婚";//答复意见
  */
  String txtName = "余伟";// 姓 名
  params.add(new BasicNameValuePair("txtName", _txtName));
  String ddlSex = "1";// 性别
  params.add(new BasicNameValuePair("ddlSex", _ddlSex));
  /*
   * <option value="1"> 男</option> <option value="2"> 女</option> <option
   * value="3"> 未说明</option>
   */
  String dtcBirthdate = "1987-03-4";// 出生时间
  params.add(new BasicNameValuePair("dtcBirthdate", _dtcBirthdate));
  String ddlCountry = "中国";// 国籍
  params.add(new BasicNameValuePair("ddlCountry", ddlCountry));
  String ddlNation = "汉族";
  params.add(new BasicNameValuePair("ddlNation", ddlNation));
  String ddlHealth = "10";// 健康状况
  params.add(new BasicNameValuePair("ddlHealth", ddlHealth));
  String ddlAdvisoryHumanCount = "1";// 同来人数
  params.add(new BasicNameValuePair("ddlAdvisoryHumanCount",
    ddlAdvisoryHumanCount));
  String txt_familyRegion = "湖北省黄冈市麻城市";// 所住地区 湖北省黄冈市麻城市
  params.add(new BasicNameValuePair("txt_familyRegion", txt_familyRegion));
  String txt_familyRegionCode = "421181";// 所住地区代码 421181
  params.add(new BasicNameValuePair("txt_familyRegionCode",
    txt_familyRegionCode));
  String dl_humanCrowType = "00005";// 受援人类别 农民 00005
  params.add(new BasicNameValuePair("dl_humanCrowType$ctl06$chkItem",
    dl_humanCrowType));
  String ddl_legalItemType = "1";// 咨询事项类型
  params.add(new BasicNameValuePair("ddl_legalItemType",
    _ddl_legalItemType));
  /*
   * <option value="1" trimedText="民事"> 民事</option> <option value="2"
   * trimedText="刑事"> 刑事</option> <option value="3"
   * trimedText="行政"> 行政</option>
   */
  String txt_caseApplyItemType1 = "故意伤害罪";
  params.add(new BasicNameValuePair("txt_caseApplyItemType1",
    txt_caseApplyItemType1));
  String txt_caseApplyItemTypeShow = "故意伤害罪";
  params.add(new BasicNameValuePair("txt_caseApplyItemTypeShow",
    txt_caseApplyItemTypeShow));
  
  String txt_caseApplyItemTypeCode = "M0101";//M0101",fname:"  离婚纠纷
  params.add(new BasicNameValuePair("txt_caseApplyItemTypeCode", _txt_caseApplyItemTypeCode));
  String ProcessMode = "1";// 处理方式
  params.add(new BasicNameValuePair("ddlProcessMode", ProcessMode));
  /*
   * <option value="1"> 咨询</option> <option value="3"> 代书</option> <option
   * value="211"> 引导向其他渠道求助</option> <option
   * value="212"> 在咨询中申请法援(未受理)</option> <option
   * value="213"> 在咨询中申请法援(受理并批准)</option>
   */
  String dtcReplyTime = "2015-04-15";// 接待日期
  params.add(new BasicNameValuePair("dtcReplyTime", _dtcReplyTime));
  String txtReplyer = "**";// 接待人
  params.add(new BasicNameValuePair("txtReplyer", txtReplyer));
  String txtWhyfor = "工伤事故损害赔偿纠纷";// 咨询内容
  params.add(new BasicNameValuePair("txtWhyfor", _txtWhyfor));
  String txtReplyOpinion = "确认劳动关系,提供伤残鉴定及劳动能力鉴定";// 答复意见
  params.add(new BasicNameValuePair("txtReplyOpinion", _txtReplyOpinion));
  String btn_Save = "保存";
  params.add(new BasicNameValuePair("btn_Save", btn_Save));
  String Host = "59.175.148.*";
  String UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:37.0) Gecko/20100101 Firefox/37.0";
  httpPost.setHeader("UserAgent", UserAgent);
  String Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
  httpPost.setHeader("Accept", Accept);
  String AcceptLanguage = "ru,uz;q=0.8,en-US;q=0.7,zh-CN;q=0.5,zh;q=0.3,en;q=0.2";
  httpPost.setHeader("AcceptLanguage", AcceptLanguage);
  String AcceptEncoding = "gzip, deflate";
  httpPost.setHeader("AcceptEncoding", AcceptEncoding);
  //请求头从浏览器中获取
  String Cookie = "ASP.NET_SessionId=fzozxwq2zke25ff3yxx3x3f; CheckCode=3xkgn; LegalAidV2_JSuserId=%c3%8c; LegalAidV2_JSuserName=%c3%8f%c2%af%c3%8e%c2%ac%c3%8b%c2%ad%c3%88%c2%91%c3%83%c2%92%c3%84%c2%97%c3%8b%c2%96%c3%80%c2%91%c3%9e; LegalAidV2_JSuserChinaName=%e5%bd%b5%e5%ba%93; LegalAidV2_JSdeptCode=%c3%8f; LegalAidV2_JSdeptName=%e6%ba%a8%e5%8e%8c%e7%9f%bd%e6%b1%88%e5%bd%b1%e6%8d%ab%e5%89%91%e4%ba%8c%e5%bc%b5; LegalAidV2_JSisDeveloper=%c3%8e; LegalAidV2_JSdutyUserId=%c3%8c; LegalAidV2_JSdutyUserName=%c3%8f%c2%af%c3%8e%c2%ac%c3%8b%c2%ad%c3%88%c2%91%c3%83%c2%92%c3%84%c2%97%c3%8b%c2%96%c3%80%c2%91%c3%9e; LegalAidV2_JSencrypted=%c3%8e; LegalAidV2_JSremainLogin=%c3%8e; lawyerId=%c3%8f%c2%af%c3%8e%c2%ac%c3%8b%c2%ad%c3%88%c2%91%c3%83%c2%92%c3%84%c2%97%c3%8b%c2%96%c3%80%c2%91%c3%9e";
  httpPost.setHeader("Cookie", Cookie);
  String Connection = "keep-alive";
  httpPost.setHeader("Connection", Connection);
  String CacheControl = "max-age=0";
  httpPost.setHeader("CacheControl", CacheControl);
  
  String result = "";
  try {
   httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));  
   HttpResponse httpResponse = new DefaultHttpClient().execute(httpPost); 
   if(httpResponse.getStatusLine().getStatusCode() == 200)  
            {  
                HttpEntity httpEntity = httpResponse.getEntity();  
                result = EntityUtils.toString(httpEntity);//取出应答字符串  
            }
  } catch (Exception e) {
   // TODO: handle exception
   e.printStackTrace();
  }
  System.out.println(result);
 }
}
时间: 2024-12-24 05:00:02

Java使用HttpPost模拟浏览器向服务器添加数据的相关文章

Java Web实现使用浏览器从服务器下载文件(后台)

Java Web实现 使用浏览器从服务器下载文件. 下面实现两种情况的下载,需求如下: 需求(一):1.用户在页面填写表单. 2.填写完成后,选择下载,将表单内容发往后台. 3.后台根据内容生产一个文件,发送给前端. 4.前端成功下载文件到本地. 此需求简单来说就是,用户在页面上填写内容,然后将内容转变成文件的形式. 后台设计思路:1.首先拿到前端发送过来的内容. 2.将内容解析,存放至缓冲区. 3.设置响应头. 4.将缓冲区里的内容,以流的方式写出. 代码实现: public void dow

浏览器和服务器之间数据读取

浏览器发送的数据格式: get: 是从url栏发送    例如:/index/?a=1&b=2 get方式没有请求体    request.body 是一个空的  b'' post: 通过form表单发送    默认发送的数据类型是urlencoded 只有post才有请求体 <form action="" method="post"> {%csrf_token%} <input type="text" name=&qu

CURL PHP模拟浏览器get和post

模拟浏览器get和post数据需要经常用到的类, 在这里收藏了几个不错的方法 方法一 <?php define ( 'IS_PROXY', true ); //是否启用代理 /* cookie文件 */ $cookie_file = dirname ( __FILE__ ) . "/cookie_" . md5 ( basename ( __FILE__ ) ) . ".txt"; // 设置Cookie文件保存路径及文件名 /*模拟浏览器*/ $user_a

第五阶段:JAVAEE 和项目开发(第一课:浏览器和服务器的交互模式和HTTP协议的概念和介绍)

互联网的发展非常迅速,但是万变不离其宗.学习 web 开发,需要我们对互 联的交互机制有一定的了解.为了更好的理解并掌握 Servlet,在正式学习 Servlet之前需要对 web 开发中客户端和服务器的交互机制以及所涉及的规范(HTTP)进行学习. HTTP 协议详解 1. web 交互的基本流程 图片介绍: 客户端根据用户输入的地址信息请求服务器,服务器在接收到用户的请求后进行处理,然后将处理结果响应给客户端,客户端将响应结果 展示给用户. 专业术语: 请求:客户端根据用户地址信息将数据发

java程序模拟浏览器访问Web服务器的处理过程

import java.net.*; import java.io.*; /* * 演示浏览器访问Web服务器的处理过程 */ public class WebServerDemo { public static void main(String[] args)throws IOException{ ServerSocket ss=new ServerSocket(10000); Socket s=ss.accept(); byte[] bytes=new byte[1024]; int len

java web中的中文乱码问题——浏览器与服务器之间的中文乱码

一. 乱码产生原因 浏览器在向服务器发送请求时会对携带的请求参数进行编码(UTF-8格式),服务器在接收到请求参数时会对其进行解码,由于浏览器与服务器编码格式不同产生乱码.不同服务器默认编码格式不同,Tomcat默认ISO-8859-1. 二. get.post请求方式乱码解决方案--简单版 1. get请求 get请求有三种解决方案. a. 通过先编码再解码方式.服务器以不同编码格式解码后导致乱码,此时可以通过先以与服务器相同的编码格式将字符串编码成原始的字节流,再通过String类的构造方法

Java语言使用HttpClient模拟浏览器登录

使用HttpClient来模拟浏览器登录网站,然后可以进行操作,比如发布信息等 第一步:获取实际的post网址,(不考虑复杂情况下) 1.需要使用到firefox的httpfox插件,httpfox中clear一下,然后start开始捕获 2.切换回网页的登录页面,开始输入自己的账号密码登录,登录成功后切回httpfox中stop,查看最近的post方法中包含的Post Data数据,和此post方法的url网址, 3.这样就得到了模拟登录时需要Post的数据参数(Parameter)和值(Va

在python获取网页的代码中添加头信息模拟浏览器

为什么要添加头部信息,因为有时候有些网页会有反爬虫的设置,导致无法获取正常的网页,在这里,在代码的头部添加一个headers信息,模拟成浏览器去访问网页. 没有添加头部信息的代码 import urllib2 url = "http://blog.51cto.com/lsfandlinux/2046467" file = urllib2.urlopen(url) html = file.read() print html 接下来添加头部信息,首先在浏览器打开百度一下,然后检查网页的头部

apache + httpclient4 + jsoup 进行模拟浏览器url访问

Hi,各位好,好久不玩博客了,最近在新公司无聊的时候,在查看一个其他网站的注册源代码时 发现了一处bug 首先前台页面是这样的结构(不显示相关网站的敏感信息) 这是一个很普通的注册页面,ok,我们看看相关js源代码,找到免费获取验证码的功能 这段代码就是普通的校验手机号,然后发送给短信接口api,60秒的校验重复发送,不知道大家发现问题了吗? 我可以根据url恶意仿造这接口需要的参数进行发送手机号码爆破,[(⊙?⊙)# 我都经历了什么..呃..] 目标服务器是http请求,那么我们先伪造一个试试