postman发送post请求,用request.getParameter()获取请求参数
1.接口代码
@RequestMapping("notifyUrl")
public void notifyUrl(HttpServletRequest request, HttpServletResponse response) {
String transactionId = request.getParameter("transaction_id");
String contractId = request.getParameter("contract_id");
String resultCode = request.getParameter("result_code"); // 3000(签章成功)3001(签章失败)
String resultDesc = request.getParameter("result_desc");
String timestamp = request.getParameter("timestamp");
String msgDigest = request.getParameter("msg_digest");// Base64( SHA1(
// app_id+MD5(timestamp)+SHA1(app_secret+transaction_id)
// ) ) 建议接入
log.warn("异步通知参数");
log.warn("transactionId= {}", transactionId);
log.warn("contractId = {}", contractId);
log.warn("resultCode = {}", resultCode);
log.warn("resultDesc = {}", resultDesc);
log.warn("timestamp = {}", timestamp);
log.warn("msgDigest = {}", msgDigest);
try {
String msgDigestSelf = new String(FddEncryptTool.Base64Encode(FddEncryptTool
.sha1(appId + FddEncryptTool.md5Digest(timestamp) + FddEncryptTool.sha1(secret + transactionId)).getBytes()));
if (!StringUtils.equals(msgDigestSelf, msgDigest)) {
log.warn("校验失败! {}", msgDigest);
return;
}
} catch (Exception e) {
log.error("{}", e);
}
// TODO 根据transactionId 判断是客户签署还是公司签署,回写当前合同签署状态.
TblContractPre entity = tblContractPreService.findByDeedsn(contractId);
if ((entity != null) && (StringUtils.isNotBlank(entity.getTransactionId()))) {
if (transactionId.equals(entity.getTransactionId())) { // 客户签署
tblContractPreService.SignSuccess(contractId);
}
}
}
2.用postMan测试
后台springMVC用request.getParameter()获取请求参数的话,在postman发送请求时,body选取x-www-form-urlencoded,Headers部分是key: Content-Type----------value: application/x-www-form-urlencoded。
当然,也可以使用其他方式获取请求参数如@RequestBody 实体类 实体变量名来自动封装请求参数到实体中,如用post请求方式发送请求,参数是json格式,那么Header的值要选application/json;charset=utf-8
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· Blazor Hybrid适配到HarmonyOS系统
· Obsidian + DeepSeek:免费 AI 助力你的知识管理,让你的笔记飞起来!
· 分享4款.NET开源、免费、实用的商城系统
· 解决跨域问题的这6种方案,真香!
· 一套基于 Material Design 规范实现的 Blazor 和 Razor 通用组件库