http请求方式GET,POST工具类RestTemplate

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.dianping.cat.Cat;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.web.client.RestTemplate; import java.net.URLDecoder;
import java.net.URLEncoder;
import java.util.Map; public class HttpUtils {
private static final Logger logger = LoggerFactory.getLogger(HttpUtils.class); /**
* 发送GET请求
* @param url
* @param param
* @param responseClass
* @param <T>
* @return
*/
public static <T> T doGet(String url, Object param, Class<T> responseClass) {
Map<String, Object> map = com.alibaba.fastjson.JSONObject.parseObject(JSON.toJSONString(param));
StringBuilder sb = new StringBuilder();
for (String s : map.keySet()) {
sb.append(s).append("=").append(map.get(s)).append("&");
}
String str = sb.substring(0, sb.length() - 1).toString();
logger.info("doGet,url:{},param:{}", url, str);
HttpHeaders httpHeaders = new HttpHeaders();
try {
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> responseEntity = restTemplate.postForEntity(url + "?" + str, new HttpEntity<>(str, httpHeaders), String.class);
T t = JSON.parseObject(responseEntity.getBody(), responseClass);
logger.info("doGet,url:{},result:{}", url, JSON.toJSONString(t));
return t;
} catch (Exception e) {
logger.error("doGet,url:{},error:", url, e);
Cat.logError(String.format("doGet,url:%s,error:", url), e);
return null;
}
} public static <T> T doPost(String url, Object param, Class<T> responseClass) { //requestVO请求参数
org.springframework.http.HttpHeaders requestHeaders = new HttpHeaders();
requestHeaders.add("Content-Type", "application/json;charset=UTF-8");
// requestHeaders.add("User-Agent", "mysite_web");
requestHeaders.add("connection", "Keep-Alive");
// requestHeaders.add("Accept", "application/json;version=3.0;compress=false"); try {
RestTemplate template = new RestTemplate();
//设置参数,输出对象的所有字段,如果未设置则默认为""空格字符串。
String jsonStr = JSON.toJSONString(param, SerializerFeature.WriteNullStringAsEmpty);
HttpEntity<String> requestEntity = new HttpEntity<>(URLEncoder.encode(jsonStr), requestHeaders); ResponseEntity<String> response = template.exchange(url,
HttpMethod.POST, requestEntity, String.class); T t = JSON.parseObject(response.getBody(), responseClass);
logger.info("doPost,url:{},params=[{}],result:{}", url, jsonStr,JSON.toJSONString(t));
return t;
} catch (Exception e) {
logger.error("doPost,url:{},error:", url, e);
Cat.logError(String.format("doPost,url:%s,error:", url), e);
return null;
} } }

http请求方式GET,POST工具类RestTemplate的更多相关文章

  1. Http请求get、post工具类

    在网上找了好久都没有找到post.get请求的工具类,现在整理了一下分享出来.http工具类如下: package com.qlwb.business.util; import java.io.Buf ...

  2. Java模拟http请求调用远程接口工具类

    package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea ...

  3. Java模拟http请求远程调用接口工具类

    package ln; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea ...

  4. java后端通过request对象获取请求的ip地址工具类

    package cn.zgjkw.battalion.util; import org.apache.log4j.Logger; import javax.servlet.http.HttpServl ...

  5. HttpClientUtil请求http地址的工具类

    直接贴代码: import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.apache ...

  6. 网络请求以及网络请求下载图片的工具类 android开发java工具类

    package cc.jiusan.www.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; ...

  7. 获取请求头中User-Agent工具类

    public class AgentUserKit { private static String pattern = "^Mozilla/\\d\\.\\d\\s+\\(+.+?\\)&q ...

  8. Servlet里面request处理外部POST请求的输入流的工具类

    package etcom.servlet; import java.io.BufferedReader; import java.io.IOException; import java.io.Inp ...

  9. 【工具类】获取请求头中User-Agent工具类

    public class AgentUserKit { private static String pattern = "^Mozilla/\\d\\.\\d\\s+\\(+.+?\\)&q ...

  10. Hutools之http工具类

    Hutools请求网络资源使用的工具类:HttpRequest和HttpResponse Get方式请求数据 Get方式请求数据Map<String,Object> paramMap = ...

随机推荐

  1. 当Java遇上机密计算,又一段奇幻之旅开始了!

    ​简介: 汪少军:如何为Java业务提供机密计算保护? ​ 写在前面 在信息世界里,数据存在三种状态: 存储态.传输态和计算态.存储在数据库或磁盘中的数据属于存储状态,在网络中传输的数据属于传输状态, ...

  2. [Blockchain] 开发完真实的 DApp 后才能得出的结论与看法

    1. 最近经常看到地方新闻有关 区块链在追踪溯源方面被实际应用,但是我本人认为这很大程度上可能是伪命题. 因为,是不是区块链.或者说有没有办法更改数据,这都很难说,本质上这个链还是由机构控制,所以对此 ...

  3. 2019-2-27-VisualStudio-插件-翻译注释

    title author date CreateTime categories VisualStudio 插件 翻译注释 lindexi 2019-02-27 15:50:33 +0800 2019- ...

  4. 解锁HDC 2024之旅:从购票到报名,全程攻略

    本文分享自华为云社区<解锁HDC 2024之旅:从购票到报名,全程攻略>,作者:华为云社区精选. Hi,代码界的小伙伴们,集结号已经吹响了!华为开发者大会(HDC 2024)--这场汇聚了 ...

  5. 自定义的基于System.Net.Http.HttpClient的WebClient,可以作为微信支付宝的发起请求时的基础请求类

    个人编写的,自己用于自己的微信api的请求的实现当中,源码公开,大家可以查看反编译源码.以下是使用方法: 第一步 搜索和安装zmjtool 第二步 发起请求 1 /**引入命名空间*/ 2 using ...

  6. DNS(7) -- 智能DNS实现

    目录 1. 智能DNS 1.1 智能DNS概述 1.2 ACL控制列表 1.3 智能DNS实现 1.3.1 bind-view功能 1.3.2 智能DNS场景实现 1.3.3 生产场景配置示例 1. ...

  7. cesium问题-关于不同时间模型亮度不一致问题

    项目中遇到发布的bim模型在当天不同时间的模型亮度发生变化,尤其是晚上的时候会出现模型很暗.尴了个尬,一度怀疑是自己眼睛有问题,连续几天出现同样的情况,想到可能是时间问题导致的模型亮度不同,于是测试了 ...

  8. 经验分享:春招零Offer,5月份还有机会吗?

    先说答案:5 月份依然有拿到 Offer 的机会. 5月份春招结束了吗? 对于应届大学生来说(也就是今年暑假毕业的学生),5 月中旬春招就陆续结束了,但是 5 月份会有很多补录的机会. 对于非应届的大 ...

  9. 鸿蒙HarmonyOS实战-Stage模型(服务卡片介绍和运行机制)

    一.服务卡片介绍 1.服务卡片的概念 在HarmonyOS中,服务卡片是一种提供即时信息和快速操作的小组件,类似于Android中的通知栏.服务卡片可以显示各种类型的信息,包括通知.天气.日历事件.音 ...

  10. SaltStack 常用的一些命令

    以下是 SaltStack 常用的一些命令: 查看帮助信息:salt --help检查Salt支持的操作系统:salt '*' test.ping查看Minion的版本号:salt '*' test. ...