当前位置: 首页 > backend >正文

java调用get请求和post请求

工具类

import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.methods.StringRequestEntity;import java.util.HashMap;
import java.util.Map;
import java.util.Set;public class HttpClientUtil {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);//循环headersSet<String> keys = headers.keySet();for (String key : keys) {String value = headers.get(key);postMethod.setRequestHeader(key, value);}// 非空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 String sendGetWithJson(String url, 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");GetMethod getMethod = new GetMethod(url);// 设置请求头if (headers != null && !headers.isEmpty()) {for (Map.Entry<String, String> entry : headers.entrySet()) {getMethod.setRequestHeader(entry.getKey(), entry.getValue());}}int status = client.executeMethod(getMethod);if (status == HttpStatus.SC_OK) {jsonResult = getMethod.getResponseBodyAsString();} else {throw new RuntimeException("接口连接失败!状态码:" + status);}} catch (Exception e) {throw new RuntimeException("接口连接失败!", e);}return jsonResult;}
}

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.inspur.project.market.service.dto.ExtraDto;
import org.apache.poi.ss.formula.functions.T;import java.util.Map;public class JsonUtil {//string转换成json的方法public static JsonNode stringToJson(String jsonStr) throws JsonProcessingException {ObjectMapper mapper = new ObjectMapper();return mapper.readTree(jsonStr);}//将map转换成string串的jsonpublic static String mapToJson(Map map) throws JsonProcessingException {ObjectMapper objectMapper = new ObjectMapper();try {return objectMapper.writeValueAsString(map);} catch (Exception e) {e.printStackTrace();return "";}}//将JsonNode类型转换成string类型public static  String jsonNodeToString(JsonNode jsonNode){ObjectMapper objectMapper = new ObjectMapper();try {return objectMapper.writeValueAsString(jsonNode);} catch (Exception e) {e.printStackTrace();return "";}}//将str类型的json数据转换成对象public static <T> T strToClass(String str , Class<T> t) throws JsonProcessingException {ObjectMapper objectMapper = new ObjectMapper();return  objectMapper.readValue(str, t);}
}

get请求

public JsonNode getDemo(String requestUrl) {try {HashMap<String, String> headers = new HashMap<>(3);headers.put("content-type", "application/json");// 发送post请求String resultData = HttpClientUtil.sendGetWithJson(requestUrl,headers);// 并接收返回结果JsonNode jsonNode = JsonUtil.stringToJson(resultData);String code = jsonNode.get("code").toString().replace("\"", "");if ("200".equals(code)) {return jsonNode;}return null;} catch (Exception e) {throw new RuntimeException(e);}}

post请求

    public Map<String,Object> map(String mapValue1, String mapValue2, String mapValue3){Map<String,Object> returnMap = new HashMap<>();map.put("mapKey1",mapValue1);map.put("mapKey2", mapValue2);map.put("mapKey3",mapValue3);return returnMap;}public Map<String,String> postDemo(String requestUrl) {try {HashMap<String, String> headers = new HashMap<>(3);String jsonStr = JsonUtil.mapToJson(map(mapValue1, mapValue2, mapValue3));headers.put("header1", "value1");headers.put("header2", "value2");headers.put("content-type", "application/json");// 发送post请求String resultData = HttpClientUtil.sendPostWithJson(requestUrl, jsonStr, headers);// 并接收返回结果JsonNode jsonNode = JsonUtil.stringToJson(resultData);HashMap<String, String> resultMap = new HashMap<>();String errCode = jsonNode.get("errCode").toString().replace("\"", "");if ("200".equals(errCode)) {resultMap.put("key1",jsonNode.path("data").path("key1").asText());resultMap.put("key2",jsonNode.path("data").path("key2").asText());resultMap.put("key3",jsonNode.path("data").path("key3").asText());resultMap.put("code",jsonNode.path("errCode").asText());}else{resultMap.put("code",jsonNode.path("errCode").asText());}return resultMap;} catch (Exception e) {throw new RuntimeException(e);}}

http://www.xdnf.cn/news/6393.html

相关文章:

  • 无人机屏蔽与滤波技术模块运行方式概述!
  • Git命令总结
  • 视频质量分析时,遇到不同分辨率的对照视频和源视频,分辨率对齐的正确顺序。
  • Linux515 rsync定时备份
  • 使用LoRA微调Qwen2.5-VL-7B-Instruct完成电气主接线图识别
  • Android 图片自动拉伸不变形,点九
  • Linux 系统中的文件系统层次结构和重要目录的用途。
  • 隆重推荐(Android 和 iOS)UI 自动化工具—Maestro
  • 浏览器宝塔访问不了给的面板地址
  • CSS图片垂直居中问题解决方案
  • 【数据结构入门训练DAY-35】棋盘问题
  • 本地文件操作 MCP (多通道处理) 使用案例
  • 使用 TypeScript + dhtmlx-gantt 在 Next.js 中实现
  • docker(四)使用篇一:docker 镜像仓库
  • 全球宠物经济新周期下的亚马逊跨境采购策略革新——宠物用品赛道成本优化三维路径
  • SQL练习(3/81)
  • 【Python】【面试凉经】Fastapi为什么Fast
  • uniapp,小程序中实现文本“展开/收起“功能的最佳实践
  • 5G + 区块链:技术巨浪下的新型数字生态!
  • 【生活相关-日语-日本-东京-搬家后-引越(ひっこし)(3)-踩坑点:国民健康保险】
  • Cloudflare防火墙拦截谷歌爬虫|导致收录失败怎么解决?
  • 国产化中间件 替换 nginx
  • MySQL索引优化面试高频考点解析(附实战场景)
  • 16.2 VDMA视频转发实验之模拟源
  • 【爬虫】DrissionPage-3
  • Ubuntu离线安装Minio
  • 鸿蒙OSUniApp 实现的地图定位与导航功能#三方框架 #Uniapp
  • websocket简介与基本使用
  • Protobuf3协议关键字详解与应用实例
  • mybatis-plus配置逻辑删除