1 背景介绍

最近有一个任务,完成数据获取和解析,需要发送带请求参数的post请求,才能拿到数据。之前没有接触过java发送post请求,但有接触过python的requets库,故写下这篇记录一下发送post请求。

2 基本实现

2.1需要的依赖:

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

idea会自动识别上面这些类,选择自动导入就好。

2.2 工具类实现

HttpUtils,实现发送:

public class HttpUtils {public static String sendPostWithJson(String url, String jsonStr, HashMap<String,String> headers) {// 返回的结果String jsonResult = "";try {HttpClient client = new HttpClient();// 连接超时client.getHttpConnectionManager().getParams().setConnectionTimeout(3*1000);// 读取数据超时client.getHttpConnectionManager().getParams().setSoTimeout(3*60*1000);client.getParams().setContentCharset("UTF-8");PostMethod postMethod = new PostMethod(url);postMethod.setRequestHeader("content-type", headers.get("content-type"));// 非空if (null != jsonStr && !"".equals(jsonStr)) {StringRequestEntity requestEntity = new StringRequestEntity(jsonStr, headers.get("content-type"), "UTF-8");postMethod.setRequestEntity(requestEntity);}int status = client.executeMethod(postMethod);if (status == HttpStatus.SC_OK) {jsonResult = postMethod.getResponseBodyAsString();} else {throw new RuntimeException("接口连接失败!");}} catch (Exception e) {throw new RuntimeException("接口连接失败!");}return jsonResult;}}

测试:

public static void main(String[] args) {HashMap<String, String> headers = new HashMap<>(3);String requestUrl = "http://localhost:8070/test/rz/server/rzxx/at_VaildToken.do";String jsonStr = "{\"name\":\"张三\"}";headers.put("content-type", "application/json");// 发送post请求String resultData = HttpUtils.sendPostWithJson(requestUrl, jsonStr,headers);// 并接收返回结果System.out.println(resultData);
}

解析使用阿里巴巴的fastJSON,把获取到的字符串变为JSON对象,然后进行遍历取出,最后进行操作,提前数据。

java实现发送post请求相关推荐

  1. java httpclient发送json 请求 ,go服务端接收

    /***java客户端发送http请求*/package com.xx.httptest;/*** Created by yq on 16/6/27.*/import java.io.IOExcept ...

  2. JAVA后台发送http请求

    JAVA后台发送http请求 代码: @RequestMapping("/check")@ResponseBodypublic Map check(Integer cashReco ...

  3. Java 常用工具类(12) : java后台发送http请求

    参考 : java http 发送post请求-json格式_Oh_go_boy的博客-CSDN博客 Java发送Http请求 - 玄同太子 - 博客园 org.apache.http 在Maven中 ...

  4. java后台发送https请求(基于httpTemplate的httpUtil工具实现)

    最近做连续做了一些java后台发送http请求的需求,发现项目里实现http请求的写法各异,不够简洁统一,于是基于httpTemplate自行封装了一个http请求工具,常见的json和octet-s ...

  5. java请求servlet,[Java]Servlet发送Post请求

    演示实例:AServlet发送一个Student对象到BServlet #### 1.AServlet部分 首先造一个学生stu,然后通过fastjson的`toJSONString`方法把对象转换成 ...

  6. java http请求_如何设置Fiddler来拦截Java代码发送HTTP请求,进行各种问题排查

    我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java 代码发送的HTTP请求明细的情况.和javascript代码在浏览器里发送请求可以 ...

  7. Java模拟发送post请求

    项目要求:模拟100个温湿度设备发送温湿度数据进行压测,查看数据是否有叠加且显示正确,因为测试环境简陋,没有100个温湿度设备,只能通过调用接口模拟发送请求,由于每次发送的请求要求正文某些元素值要唯一 ...

  8. java后端发送http请求

    一.新建一个工具类:HttpRequestUril package com.tfjybj.dtc.crawl.util;import java.io.*; import java.net.*; imp ...

  9. Java模拟发送Http请求详细示例

    对接第三方接口,肯定是需要我们自己模拟浏览器来发送请求的,有的文档中有demo,有demo改一改参数配置就好了,但有的接口却没有demo,只有一份接口参数介绍文档,这时候就需要我们自己来写发送请求的代 ...

最新文章

  1. phpstrom 代码格式
  2. condition可数吗 living_单词辨析 知识讲解 condition situation state的区别
  3. 怎么把word里面虚线变成实线_弱电不会制作cad图,花3分钟看完,只要会用WORD保证你能画出来...
  4. [ 逻辑锻炼] 用 JavaScript 做一个小游戏 ——2048 (详解版)
  5. [Twisted] Protocols协议和Protocol Factories 协议工厂
  6. 网络设备的区分(自顶向下)
  7. 使用APICloud AVM多端框架开发app通讯录功能
  8. 熊拍拍是什么?熊拍拍是下一个风口吗?
  9. 实验详解OSPF的几类LSA、FA转发规则(思科设备)
  10. PO: Purchase Order采购订单关键知识点
  11. SpringBoot整合Thymleaf实现页面静态化
  12. TDengine极简实战:从采集到入库,从前端到后端,体验物联网设备数据流转
  13. 大专毕业,0基础转行C++程序员一个月后,我后悔了
  14. Zookeeper的四字命令
  15. 知道焊缝长度如何确定节点板尺寸_钢桁架节点图 中各尺寸确定原则 总结
  16. 《国内十大中文博客托管网站排行榜》
  17. 转杨毅:火箭输得有谱了!
  18. 十进制与二进制快速转换计算心得
  19. python编程从入门到实践(入门)
  20. Spyder编辑器配色方案

热门文章

  1. vue 3.0 slot 使用方法
  2. 防火墙技术之安全策略
  3. xmlview, 用于 Google Chrome 和Safari的强大的XML查看器
  4. linux实验报告一,Linux实验报告6参考答案.doc
  5. c# Dictionary
  6. 强烈推荐 在线接口文档管理工具 小幺鸡 小团队可以省掉测试了
  7. 在VM虚拟机linux小火车安装运行
  8. 局域网内海量文件快速复制方法
  9. cnpm 是什么?怎么配置?
  10. 中国数控水刀切割机市场趋势报告、技术动态创新及市场预测