java 使用httppost设置json参数发送请求

java http 发送post请求-json格式         最近项目中有向微信后台发送请求一些操作,网上的很多工具有问题,自己根据其中一个优化了一下,直接上代码: import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpPost; import org.apache.... 阅读详情
AI摘要

本文介绍了如何在Java中使用ApacheHttpClient库处理第三方接口,涉及JSON格式数据发送,参数通过SHA-256加密,并添加签名头。核心部分展示了getSignature方法和发送请求的步骤。

对接第三方接口时,有时接口要求参数为json格式,留个笔记备用!

引入的包如下

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import java.security.MessageDigest;
import org.apache.http.entity.StringEntity

核心代码如下,其中有个对参数进行hash+salt加密方法名为 getSignature()

getSignature()具体代码如下图一

发送请求并获取响应的代码如下图二

private String getSignature(String param)  {
		String ori=param+指定的salt或者随机生成salt;
		MessageDigest md = null;
		try {
			md = MessageDigest.getInstance("SHA-256");
			md.update(ori.getBytes("UTF-8"));
			return  byte2Hex(md.digest());
		} catch (NoSuchAlgorithmException e) {
			throw new RuntimeException(e);
		} catch (UnsupportedEncodingException e) {
			throw new RuntimeException(e);
		}
	}



private  String byte2Hex(byte[] bytes){
		StringBuffer stringBuffer = new StringBuffer();
		String temp = null;
		for (int i=0;i<bytes.length;i++){
			temp = Integer.toHexString(bytes[i] & 0xFF);
			if (temp.length()==1){
				//1得到一位的进行补0操作
				stringBuffer.append("0");
			}
			stringBuffer.append(temp);
		}
		return stringBuffer.toString();
	}
HttpClient client = new DefaultHttpClient();
HttpResponse resp;    
HttpPost post = new HttpPost(url);       
post.addHeader("Accept", "application/json");
		String authorization = "Bearer " + getAccessToken().get("data").toString();
		post.addHeader("Authorization", authorization);
		post.addHeader("Content-Type", "application/json");
		JSONObject param = new JSONObject();
		param.put("paraName1",paramaValue1);
        param.put("paraName2",paramaValue2);
		String sign=getSignature(param.toString());
		post.addHeader("sign", sign);
		StringEntity reqEntity = new StringEntity(param.toString(),"utf-8");
		reqEntity.setContentEncoding("UTF-8");
		reqEntity.setContentType("application/json");
		// 设置类型
		// 设置请求的数据
		post.setEntity(reqEntity);
        try{
        
            resp = client.execute(post);
			HttpEntity httpEntity = resp.getEntity();
			sResponse = EntityUtils.toString(httpEntity, "UTF-8").trim();
        Map<String, Object> respMap =jsonToBean(sResponse, Map.class);

            }catech(Exception e){
        e.printstsck();
        }
        resp = client.execute(post);

,httppost设置参数主要靠xxxeneity,详情可以百度查看使用!

使用Java后台发送和接收JSON数据 在上述示例中,我们首先创建一个JSONObject对象,并将一些示例数据放入其中。接着,我们使用receiveJSONData方法从同一个URL接收JSON数据,并将其打印出来。以上代码中,我们首先创建一个URL对象,然后打开连接并将请求方法设置为POST。我们将使用Java的HttpURLConnection类来进行网络请求,并使用JSON库来处理JSON数据。然后,我们将请求方法设置为GET,并获取服务器的响应。我们读取响应的内容,并使用JSON库将其转换为JSONObject对象,然后将其返回。 阅读详情

相关推荐

java 实现通过 post 方式提交json参数操作

主要介绍了java 实现通过 post 方式提交json参数操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

java发送post请求传json数据

import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import org.apache.http.HttpResponse; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClie.

qq_43251098的博客 2万+

STM32 超声波模块输入捕获测距(标准库)

通道2设置为下降沿触发,触发瞬间会将CNT的记录到CCR2中,由于上升沿触发时已经将CNT置零所以此时的CNT的值就是高电平的持续时间。通道1设置为上升沿触发,触发的瞬间会将CNT的值记录到CCR1里面,同时设置通道1触发带有从模式,并把从模式设置为置零CNT。超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一个用于接收。电路板上有四个引脚:VCC、GND、Trig(触发)、Echo(回应)。输入捕获原理可以看看这位大佬,感觉写的很清楚,工作电压与电流:5V,15mA。感测角度:不小于15度。

qq_62425900的博客 2083

HttpURLConnection 的 POST 方法

      URL url = new URL(".......");       HttpURLConnection con = (HttpURLConnection) url.openConnection();       con.setDoOutput(true); // POST方式       con.setRequestMethod("POST");       OutputStr

老紫竹的专栏 2726

5分钟搞懂SCMA:稀疏码多址接入的核心原理与实战应用

本文深入浅出地解析了SCMA(稀疏码多址接入)的核心原理与实战应用。通过对比传统正交多址技术,阐释了SCMA如何通过非正交叠加和稀疏码本设计,实现远超资源单元数的用户接入,从而有效应对5G海量机器通信(mMTC)的挑战。文章还探讨了其在上行海量连接、免授权接入等场景的应用潜力及工程实现中的关键考量。

zeta9的博客 264

无限泛化!AI背景文字识别,腾讯文字六宫格

本文介绍了生成大规模文字验证码数据集的方法,通过使用上百种字体和2万+字库,结合随机背景和数十种图像增强技术,生成了2000万+的多样化样本。该方法采用二阶段训练策略,确保模型对字体、形态、形变等具有强泛化能力,可适配腾讯、咸鱼等多种平台的文字验证码识别,包括生僻字和复杂形变情况。生成的模型在多种验证码场景下表现优异,但强调该方法仅用于技术研究,严禁非法用途。

码王吴彦祖的博客 565

java 连url 添加json参数,获取json返回值

最近用到java连url用json参数,记录一下代码: public static void main(String args[]) { String url = "https://api.xxx.xxx.com"; String params = "{\"param1\": \"123456\",\"param2\": \"T123456\"}"; ...

e274794140的专栏 1665

YOLOv5源码逐行超详细注释与解读(3)——训练部分train.py

全网最详细的YOLOv5项目源码解读之训练部分train. py。全文近5万字!代码逐行注释,逐段讲解,小白入门必备!

路人贾的博客 3万+

restclient发送json_java如何通过client客戶端http实现get/ post请求传递json参数到restful 服务接口...

一、首先在client端,导入maven相关依赖(httpclient以及json相关依赖)org.apache.httpcomponentshttpclient4.5.2net.sf.json-libjson-lib2.4net.sf.ezmorphezmorph1.0.6commons-collectionscommons-collections3.2.1commons-beanutilsco...

weixin_42389522的博客 978

PDBfixer:蛋白质结构修复工具

本文介绍蛋白质数据银行(PDB)文件常见问题及修复工具PDBFixer的使用方法。PDB文件常存在缺失原子、残基等问题,PDBFixer可通过GUI、命令行或Python API实现自动化修复。文章详细说明安装方法、命令行参数、Python脚本修复流程及非标准残基替换表,并与Modeller、ColabFold和Rosetta Remodel等其他修复工具进行对比分析,提供了各工具的特点、适用场景和典型计算时间比较,帮助用户根据具体需求选择合适的修复工具。

Protein Designer的博客 612

Calibre:LVS 快速debug short/open技巧

用Fix Suggestion和Short Isolate两种方法debug LVS问题

m0_61544122的博客 7462

post请求参数为json格式

httpPostWithJson

Turing_wzh的博客 2944

全志A133的AndroidSDK

本小节来学习如何下载全志安卓SDK,SDK的目录,编译和烧录提示:以下是本篇文章正文内容,下面案例可供参考以上就是整个SDK的目录和编译烧录,目的在于让初学者快速了解整个源码的目录和编译出镜像喜欢就订阅吧。

qq_24093081的博客 4056

Java发送POST请求,并且参数为JSON格式

public static String sendPostReq(String url, JSONObject jsonObject) throws ParseException, IOException{ return sendPost(url,jsonObject,HTTP.UTF_8); } / ** * 发送post请求 * @param url 路径 * @param jsonObject 参数(json类型) * @p...

Mr丶GUO 2234

YOLOv11改进 | 细节涨点篇 | DySample一种最新的轻量化动态上采样算子(效果完爆CARAFE)

本文给大家带来的最新改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子),

Snu77的博客 4212

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java模拟http请求_java模拟post请求发送json的例子

java模拟post请求发送json,用两种方式实现,第一种是HttpURLConnection发送post请求,第二种是使用httpclient模拟post请求,方法一:package main.utils;import java.io.*;import java.net.HttpURLConnection;import java.net.URL;public class HttpUtilTes...

weixin_36350479的博客 734

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java使用httpclient发送post请求

public static String sendJsonPost(String url,String[] keys,Object[] values)throws Exception{ HttpPost httpPost=null; CloseableHttpClient client=null; JSONObject jsonParam=null...

panda_lgn的博客 1414

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Java HttpClient Post多层json格式参数

package ... import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org...

NCUT-LB 4049

Java发送Post请求,参数JSON,接收JSON

/** * 发送post请求 * @param url 路径 * @param jsonObject 参数(json类型) * @param encoding 编码格式 * @return * @throws ParseException * @throws IOException */ ...

weixin_30266829的博客 1584

模拟发送HTTP请求

/** * 模拟发送HTTP请求 * @author 白鹿 * @param url * @param paramMap */ public static String sendHttp(String url,String str) { CloseableHttpClient httpClient = HttpClients.createDefault(); RequestConfig.custom().set...

空空如一日 833

java http 接口参数为对象_Java后端请求Post接口并发送list对象等参数详细教程-Fun言...

前言有时候,我们在开发中有时候会需要用到后端去请求别人的接口,然后发送一些数据,所以今天就教大家请求Post接口并发送list对象或普通参数的方法。引入mavenorg.apache.httpcomponentshttpclient4.5.1com.google.code.gsongson2.8.5com.google.code.gsongson2.8.5编写工具类package cn.zoshu...

weixin_39585617的博客 5166

Java httpClient发送post请求工具类

Java httpClient发送post请求工具类 public static String send(String url, JSONObject jsonObject, String encoding) throws IOException { String body = ""; //创建httpclient对象 CloseableHttpClient client = HttpClients.createDefault(); //创

weixin_44021888的博客 1463

使用hutool发送POST请求java

使用hutool发送POST请求java

qq_38978882的博客 748

post请求加json参数方式二

utputStreamWriter; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.security.SecureRandom; import java.

kai402458953的博客 1310

java 模拟 http 后台请求

public static String httpPostWithJSON(String url,Map<String, String> params) throws Exception { String json = JSON.toJSONString(params); HttpPost httpPost = new HttpPost(url); CloseableHttpClien...

abxcdhjf的博客 244

post发送请求

【代码】【无标题】

dabaoai123123的博客 200
上一篇: dubbo加zookeeper遇到的坑
下一篇: 控制台打印sql语句设置总结
learnjava1989
博客等级 码龄9年 9粉丝 23原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值