RequestEntity entity = new StringRequestEntity(str, "text/html", "utf-8");
post.setRequestEntity(entity);

  

最近在做一些爬虫相关的工作,遇到了一个网站,在使用谷歌开发者工具监控的时候,发现他的请求是这样的

我们都知道传统的post请求,所提交的是form data 格式的,key-value键值对的形式提交。这个在爬虫post请求中非常常见。

第一次遇到了这种形式提交的,后面去找了很多方法,发现在百度搜的答案都用不了,后面翻墙去了stackoverflow,这边贴上地址

http://stackoverflow.com/questions/22671897/httpclient-httppost-and-payload

所给的答案我也用不了。

于是去认真研究了一下,发现他所提交的post流,不是传统的key-value模型的数据,而是post一段json文字

仔细查看了HttpClient的一些相关的API后,找到了答案

这边贴上我的小Demo,Demo是用来抓取某个城市的公积金数据的,这边隐藏去账号密码

RequestEntity entity = new StringRequestEntity(str, "text/html", "utf-8");
post.setRequestEntity(entity);

  

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.RequestEntity;
import org.apache.commons.httpclient.methods.StringRequestEntity;

  

HttpClient request payload post请求的更多相关文章

  1. Postman模拟Request Payload发送请求

    Postman模拟Request Payload发送请求,如下图所示:

  2. 前端用Request Payload方式请求后台

    后台接收方式: InputStream inputStream = request.getInputStream(); byte[] buff = new byte[1024]; int len = ...

  3. HTTP请求中的form data和request payload的区别

    HTML <form> 标签的 enctype 属性 在下面的例子中,表单数据会在未编码的情况下进行发送: <form action="form_action.asp&qu ...

  4. [整理]Ajax Post请求下的Form Data和Request Payload

    Ajax Post请求下的Form Data和Request Payload 通常情况下,我们通过Post提交表单,以键值对的形式存储在请求体中.此时的reqeuest headers会有Conten ...

  5. AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式

    转载:http://blog.csdn.net/mhmyqn/article/details/25561535 HTTP请求中,如果是get请求,那么表单参数以name=value&name1 ...

  6. AJAX POST请求中參数以form data和request payload形式在servlet中的获取方式

    HTTP请求中,假设是get请求,那么表单參数以name=value&name1=value1的形式附到url的后面,假设是post请求,那么表单參数是在请求体中,也是以name=value& ...

  7. POST请求中参数以form data和request payload形式+清空数组方式

    测试与服务端ajax时用的dva封装的request方法,而后端怎么也拿不到参数.结果返现参数在request payload里. HTTP POST表单请求提交时:Content-Typeappli ...

  8. HTTP请求中的Form Data与Request Payload的区别

    前端开发中经常会用到AJAX发送异步请求,对于POST类型的请求会附带请求数据.而常用的两种传参方式为:Form Data 和 Request Payload. GET请求 使用get请求时,参数会以 ...

  9. C# net request payload形式发送post请求

    因为开发微信群发电脑版需要模拟微信POST请求,微信发送消息使用request payload发送,实际发送的是json字符串.我们只需要生成的json字符串和请求的一致,header头完全模拟即可. ...

随机推荐

  1. linux shell 脚本攻略学习8---md5校验,sort排序,uniq命令详解

    一.校验与核实 目前最为出名的校验技术是md5sum和sha1sum,它们对文件内容使用相应的算法来生成校验和. 举例: amosli@amosli-pc:~/learn$ md5sum text.t ...

  2. iOS 开发中的 Tips(一)

    背景 学习6个小Tips 那就跟我一起学习小知识点吧.目录如下: 修改Mac终端(Terminal)里不同类型文件的显示颜色 修改Mac终端(Terminal)的提示文字 Mac终端显示/隐藏文件命令 ...

  3. java的几个format

    public static String formatDateToString(long date) { SimpleDateFormat formatter = new SimpleDateForm ...

  4. SpringBoot配置属性之MVC

    SpringBoot配置属性系列 SpringBoot配置属性之MVC SpringBoot配置属性之Server SpringBoot配置属性之DataSource SpringBoot配置属性之N ...

  5. 【Struts2】result类型

    Struts2 result类型 1.dispatcher:服务器跳转到页面,通常来处理JSP,默认类型. 2.redirect:重定向到页面. Action: 1 public String red ...

  6. UIAlertView 点击按钮后控制其是否消失

    新建NotDismissAlertView类,继承UIAlertView. 设置控制是否消失的标示符 重写  在-(void)dismissWithClickedButtonIndex:(NSInte ...

  7. 解决安装Egit时Egit Mylyn和org.eclipse.team.core报错

    为了让Aptana支持GitHub,需要安装Egit,但在的时候碰到两个错误,一个是关于缺少EGit Mylyn另一个是缺少org.eclipse.egit.import.feature.group. ...

  8. 解决Clover在win 10下的兼容问题

    周五闲的蛋疼,把系统升级到win10.周一早上过来,发现Clover 无法使用了,各种崩溃,查阅了官网,发现Clover确实只兼容到win8.网络上给出解决方案的确是用qttabbar,qttabba ...

  9. C# 创建windows 服务

    1.      新建项目 1.1 右键解决方案 – 添加 – 新建项目 1.2 已安装模板 - windows  -  windows服务 – 输入名称 – 点击 ”确定” 2.      添加相应的 ...

  10. (面试)写出下面switch语句的输出结果

    (1) public static void main(String[] as) { int a = 0;  switch (a)  { case 1:   System.out.println(&q ...