post请求方式 - 使用restTemplate而不使用httpClient,headers.setContentType(MediaType.APPLICATION_JSON_UTF8)
public static String doPostForJson(String url, String json,String byteAuthorization) {
RestTemplate restTemplate = new RestTemplate();
logger.info("restTemplate invoke post method. url:[{}], json:[{}]", url, json);
long startTime = System.currentTimeMillis();
String result = "";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
headers.add("Byte-Authorization",byteAuthorization);
HttpEntity<String> request = new HttpEntity<>(json, headers);
result = restTemplate.postForEntity(url,request,String.class).getBody();
logger.info("restTemplate invoke [{}] consume time is,[{}] ms.", url, System.currentTimeMillis() - startTime);
logger.info("restTemplate invoke post method. result:[{}]", result);
return result;
}
/**
* 通过该方式,对方未正确接收到参数
* https://blog.csdn.net/zy_281870667/article/details/87723177
* @param url
* @param json
* @param byteAuthorization
* @return
*/
public static String doPostForJsonOld(String url, String json,String byteAuthorization) {
logger.info("invoke post method. url:[{}], json:[{}]", url, json);
long startTime = System.currentTimeMillis();
String result = "";
HttpClient httpClient = wrapClient(url);
StringEntity se = new StringEntity(json, "UTF-8");
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
// se.setContentType(new BasicHeader("Accept", "application/json"));
/**
* 数据格式
* Byte-Authorization: SHA256-RSA2048 appid="ttxxx",nonce_str="DC10180A100073E70A48F195DA2AF2E6",timestamp="1623934869",key_version="1",signature=""'
*/
se.setContentType(new BasicHeader("Byte-Authorization", byteAuthorization));
se.setContentEncoding("UTF-8");
// 创建HttpPost
HttpPost httpPost = new HttpPost(url);
httpPost.setEntity(se);
// 执行POST请求
try {
HttpResponse response = httpClient.execute(httpPost);
// 若状态码为200 ok
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// 取出回应字串
result = EntityUtils.toString(response.getEntity(), "UTF-8");
}
} catch (Exception e) {
logger.error("Calling douyin payment interface is abnormal >>> url:[{}], json:[{}]",
url, json, e);
}
logger.info("invoke [{}] consume time is,[{}] ms.", url, System.currentTimeMillis() - startTime);
logger.info("invoke post method. result:[{}]", result);
return result;
}
post请求方式 - 使用restTemplate而不使用httpClient,headers.setContentType(MediaType.APPLICATION_JSON_UTF8)的更多相关文章
- 第三节:总结.Net下后端的几种请求方式(WebClient、WebRequest、HttpClient)
一. 前言 前端调用有Form表单提交,ajax提交,ajax一般是用Jquery的简化写法,在这里不再过多介绍: 后端调用大约有这些:WebCient.WebRequest.Httpclient.W ...
- Spring RestTemplate中几种常见的请求方式GET请求 POST请求 PUT请求 DELETE请求
Spring RestTemplate中几种常见的请求方式 原文地址: https://blog.csdn.net/u012702547/article/details/77917939 版权声明 ...
- HttpwebClient的四种请求方式
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷. 本文旨在发布代码,供自己参考,也供大家参考,谢谢. 正题: Ht ...
- android http协议post请求方式
方式一:HttpPost(import org.apache.http.client.methods.HttpPost 代码如下: private Button button1,button2,but ...
- Android之Http通信——3.Android HTTP请求方式:HttpURLConnection
3.Android HTTP请求方式之HttpURLConnection 引言: 好了,前两节我们已经对HTTP协议进行了学习.相信看完前两节的朋友对HTTP协议相比之前 应该更加熟悉吧.好吧.学了要 ...
- Android进阶(一)几种网络请求方式详解
Ref:http://blog.csdn.net/zuolongsnail/article/details/6373051 Android应用经常会和服务器端交互,这就需要手机客户端发送网络请求,下面 ...
- SpringBoot08 请求方式、参数获取注解、参数验证、前后台属性名不一致问题、自定义参数验证注解、BeanUtils的使用
1 请求方式 在定义一个Rest接口时通常会利用GET.POST.PUT.DELETE来实现数据的增删改查:这几种方式有的需要传递参数,后台开发人员必须对接收到的参数进行参数验证来确保程序的健壮性 1 ...
- 航信电子发票开发(servlet请求方式)
在系统用户交费后,需要打印发票,可以选择普票或者机打票(票据信息在系统中自定义设置的),也可以打印电子发票,这里对接的是航信的电子发票,请求方式非web服务,而是使用servlet通过HTTP请求的方 ...
- http状态码+http请求方式
一.http状态码 2开头 (请求成功)表示成功处理了请求的状态代码. 200 (成功) 服务器已成功处理了请求. 通常,这表示服务器提供了请求的网页. 201 (已创建) 请求成功并且服 ...
- Feign服务调用请求方式及参数总结
前言 最近做微服务架构的项目,在用feign来进行服务间的调用.在互调的过程中,难免出现问题,根据错误总结了一下,主要是请求方式的错误和接参数的错误造成的.在此进行一下总结记录.以下通过分为三种情况说 ...
随机推荐
- TDA-04D8变送器数据上报阿里云
简介:本文将以TDA-04D8变送器作为采集对象,使用海创微联采集控制系统对TDA-04D8变送器进行采集,然后将设备上的毛重.净重.皮重数据采集上传到阿里云物联网平台,阿里云物联网平台将数据实时可 ...
- DataWorks功能实践速览 05——循环与遍历
简介: DataWorks功能实践系列,帮助您解析业务实现过程中的痛点,提高业务功能使用效率!通过往期的介绍,您已经了解到在DataWorks上进行任务运行的最关键的几个知识点,其中上期参数透传中为 ...
- dotnet C# 反射扫描程序集所有类型会不会触发类型静态构造函数
在 dotnet 里面,有很多框架都喜欢扫描程序集进行初始化逻辑,在扫描程序集的所有类型的时候,相当于碰到所有类型.而某个类型的静态构造函数将会在某个类型被使用之前被 CLR 调用,那么扫描类型是否会 ...
- 开发日记:中控PUSH协议
using System; using System.IO; using System.Net; using System.Text.RegularExpressions; namespace Con ...
- B/S 结构系统的 缓存机制(Cookie) 以及基于 cookie 机制实现 oa 十天免登录的功能
B/S 结构系统的 缓存机制(Cookie) 以及基于 cookie 机制实现 oa 十天免登录的功能 @ 目录 B/S 结构系统的 缓存机制(Cookie) 以及基于 cookie 机制实现 oa ...
- 深入理解 Swift Combine
Combine 文中写一些 Swift 方法签名时,会带上 label,如 subscribe(_ subscriber:),正常作为 Selector 的写法时会忽略掉 label,只写作 subs ...
- 【题解】[NOIP2001 普及组] 装箱问题
[NOIP2001 普及组] 装箱问题 这是一道动态规划题. 那就先定义状态吧(这里用的是一维滚动数组). \(f[j]\) 代表当我有 \(j\) 这么多容量可以用时,能装的最大重量是多少. 好,状 ...
- 高效运维_AIRIOT智慧电力运维解决方案
可再生能源的引入带来了能源生产的去中心化和分散化趋势,同时也带来了能源输出的波动性和不确定性.电力运维因此需要更加灵活.智能的解决方案,以适应可再生能源的集成,确保电力系统的稳定运行,传统的电力运维管 ...
- Halcon无法连接Basler相机及图像不稳定的解决办法
情况一:出现检测图片接口可以检测到GigE接口,但连接时显示不能初始化. 解决办法:这种首先确保相机网口连接稳定,并在Basler的自带驱动软件Pylon中将TriggerMode改为Off(Halc ...
- web开发遇到的坑之360浏览器缓存问题
再使用360浏览器,浏览我自己开发的一个配置的web管理后台时,发现,使用ctrl+F5都不能刷新表格的数据,还有,我添加字段时,明明是添加成功的,用sql再数据库查都能查出来.但表格里就是不显示.我 ...