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. 公交线路 思维,分支(女赛)
  2. vb趣味编程弹球小游戏_最好玩的微信小游戏集合,总有一款是你没玩过的
  3. python字典长度可变吗_Python字典dict实现原理
  4. 95-30-050-java.util-LinkedHashMap
  5. 赚钱这件事并不难,难的是你没有搞懂这个思维?
  6. JavaScript:日期选择器组件的使用
  7. 自动化测试之java的job任务
  8. python之叠加两个图片
  9. mysql字段命名_数据库表及字段命名规范
  10. 【计算机组成原理】实验2:十六位数据总线实验
  11. 华为「天才少年」计划招募的博士们,迎来首秀!
  12. Anaconda新建虚拟环境-报错Multiple Errors Encountered
  13. 学习ios Metal(9)—iphone X真实感深度相机True Depth Camera的调用和metal GPGPU
  14. Win11图标变暗怎么办?Win11图标变暗的解决方法
  15. C++ 子类的拷贝构造函数调用其父类的拷贝构造函数
  16. OpenGL学习随笔(三)——2022.1.24
  17. 让人癫狂的24号,请你慢点离开
  18. 使用新的输入系统在 Unity 中构建第三人称控制器
  19. C#语言生成PDF文件函数总结
  20. LOL模型与骨骼动作的导入与导出

热门文章

  1. linux系统最小化快捷键,Linux下Gnome桌面环境的快捷键汇总
  2. Qt各种颜色名称及CSS对照表
  3. 同济大学c语言,同济大学c语言复习.ppt
  4. 北大元培要搞通用AI实验班!朱松纯带队
  5. unbind()解决多次弹窗问题
  6. Android反编译解包、重新打包、重新签名基础步骤自理文档
  7. 使用打字稿绘图网格构建游戏3 5
  8. CocoaPods的使用教程
  9. system service(电脑蓝屏system_service_exception怎么办)
  10. LG的Optimus 2X手机回顾