java 后端rpc调用接口以map作为入参传值

【app逆向】Frida-rpc 的常用python脚本 在执行frida-rpc时,会涉及到先关参数类型的处理和转换,例如:在python中给frida的JavaScript脚本传入参数时,一般有如下几种情况:字符串/整型/浮点型等直接传递。 列表/字典 字节,无法直接传递,需转换为列表。 某个类的对象,无法直接传递,可以将参数传入,然后再在JavaScript调用frida api构造相关对象。 1.1.2 JavaScript 在frida的脚本中其实就用编写JavaScript代码,所以我们对于内部的执行过程完全是使用JavaScript语 阅读详情

1.map入参形式及数据格式

 

2.远程服务端接受参数形式

/**
	 * 离店接口,客户办理离店PMS调用此接口,发起对携程离店通知
	 * @param
	 * @return
	 */
	@Path("checkout")
	@POST
	@Produces("text/xml;charset=UTF-8")
	public String orderCheckOut(MultivaluedMap<String, String> param) {
		PMSResult result = new PMSResult();
		logger.info("param" + param);
		if ("2".equals(ServerConfig.getValue("EMERGENCY_HANDLE"))) {
			return "0";
		} else {
			ResponseToken otaResponseToken=null;
			OTACtripOrder otaCtripOrder=null;
			String orderId="";
			String hotelId="";
			ArrayOfOrderApplyPaymentRequest payreqsv = new ArrayOfOrderApplyPaymentRequest();
			//根据订单号查询switch库携程订单表,如果订单不存在调用直连中的(携程预授权通知扣款接口)rpc调用
			if (param != null && !StringUtil.isEmpty(param.getFirst("orderId")) && !StringUtil.isEmpty(param.getFirst("hotelId"))
					&& !StringUtil.isEmpty(param.get("orderApplyPaymentRequest"))){
				String[] payrequest = param.getFirst("orderApplyPaymentRequest").toString().split(";");
				for (String applyPaymentRequest : payrequest) {
					String[] payRequestArray = applyPaymentRequest.split(",");
					OrderApplyPaymentRequest payRequest = new OrderApplyPaymentRequest(param.getFirst("hotelId").toString()+"_"+payRequestArray[0],
							BigDecimal.valueOf(new Double(payRequestArray[1])), payRequestArray[2], payRequestArray[3],
							payRequestArray[4], payRequestArray[5], payRequestArray[6]);
					payreqsv.getOrderApplyPaymentRequest().add(payRequest);
				}
				orderId = param.getFirst("orderId");//这个是携程的订单号
				hotelId = param.getFirst("hotelId");//这个是pms的酒店id
                otaCtripOrder = getOTACtripOrder(hotelId,orderId);
			}else {
				logger.debug("参数为空------订单号:"+orderId+" ,酒店编号:"+hotelId);
			}
			if (otaCtripOrder==null){
				//rpc调用远程直连系统的---
              if (payreqsv!=null){
				  ReData reData=new ReData();//封装rpc参数
【JSON-RPC】JSON-RPC轻量级远程调用协议介绍和使用其进行接口测试 目录前言协议简述一、JSON-RPC协议描述使用JSON-RPC进行接口下发一、maven配置二、工具类书写 前言 之前使用java做接口测试,均使用HttpClient来进行,今次遇到一个新的项目使用python的odoo框架开发,其接口和之前的网站稍有不同,导致在前台看到的接口返回内容和之前的差别很大,一般的restful接口在控制台里是这样的: 而现项目的控制台显示如下: 这种参数用通用... 阅读详情

相关推荐

JAVA实现简单的RPC框架

一、RPC简介 RPC(Remote Procedure Call)——远程过程调用,它是一种通过网络从远程计算机程序上请求服务。RPC是与语言无关的。可用于:高并发程序,将程序各层分离以提高程序的负载;公共模块,为其他模块提供服务等。 1. 调用客户端句柄,执行传送参数 2. 调用本地系统内核发送网络消息 3. 消息传送到远程主机 4. 服务器句柄得到消息并取得参数 5. 执行远...

beyond_qjm的博客 1万+

JAVA rpc调用webservice服务

入参是xml的: package com.comparator.interfaces.cxf; public class RPCClient {     private static final String arg0 = "&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n"             +"  \r\n"         ...

huhailong_1的博客 3554

Omni_rpc USDT调用_java

pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation...

微笑流浪 1875

Frida系列--远程调用(RPC)

Frida主动调用 frida主动调用Java函数 js脚本: rpc.exports = { myfunc: function(queryId){ Java.perform(function(){ try{ var currentApplication = Java.use('android.app.ActivityThread').currentApplication(); var conte

Tasfa的博客 4173

【Java 多线程 7】通过socket、多线程、动态代理、反射 实现RPC远程方法调用

一、概念梳理 1、Socket是什么? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。 Socket技术详解 2、动态代理是什么? 目前java动态代理的实现分为两种 1.基于JDK的动态代理 2.基于CGILB的动态代理 在业务中使用动态代理,一般是为了给需要实现的方法添加预处理

学Java,找哪吒 6002

深入解析MSPM0系列Keil开发中‘ti_msp_dl_config.h‘缺失问题的根源与修复

本文深入解析TI MSPM0系列Keil开发中'ti_msp_dl_config.h'文件缺失问题的根源与修复方法。该错误常见于编译时提示file not found,主要因SysConfig工具未正确生成或工程路径配置错误导致。文章提供了从环境检查、手动生成文件到工程配置调整的系统化解决方案,帮助开发者快速解决这一常见KEIL开发难题。

gold的博客 970

Spring AI RAG 生产级实战:从 0 构建企业智能知识库系统

Spring AI🎯统一的 API 抽象:屏蔽不同 AI 服务商的差异🎯开箱即用的集成:支持主流大模型和向量数据库🎯Spring 生态融合:与 Spring Boot、Spring Data 无缝集成🎯企业级特性:事务管理、监控、安全等RAG 架构:检索 + 增强 + 生成,解决 LLM 局限性Spring AI:统一的 API 抽象,简化 AI 应用开发向量数据库:pgvector 适合中小规模,Milvus 适合大规模文档处理:加载 → 分块 → 向量化 → 存储检索优化。

一起修行,不孤单。这里有编程语言、开发工具、学习方法论和踩坑笔记。用简单的话说复杂的事,陪你从小白到进阶。周更干货,欢迎一起成长! 405

使用TensorFlow Lite Micro流程记录(带源码)

记录如何使用tensorflow lite micro,以及期间解决的问题

ZhaoDongyu_AK47的博客 6216

用App Inventor做个蓝牙温湿度计,手机自动连Arduino,5分钟搞定硬件数据上屏

本文详细介绍了如何使用App Inventor和Arduino快速搭建一个蓝牙温湿度监测系统,实现手机自动连接并显示实时数据。通过图形化编程和硬件组装指南,零代码基础的用户也能在5分钟内完成硬件数据上屏,适用于智能家居、教学演示等多种场景。

weixin_30813225的博客 171

ModusToolbox 实战避坑指南|从环境配置到项目构建

本文是一份详尽的ModusToolbox实战避坑指南,手把手教你从环境配置到项目构建。重点解决了Windows系统下的安装、关键环境变量CY_TOOLS_PATHS的设置、PowerShell执行策略调整以及利用URL Modifier工具优化GitHub资源下载等核心难题,旨在帮助开发者,特别是英飞凌(Infineon)芯片用户,顺利搭建开发环境并成功运行第一个Hello World程序。

t1u2v的博客 591

5、模型预测控制与分布式MPC控制结构解析

本文深入解析了模型预测控制(MPC)中的双模式预测控制及其稳定性理论,并探讨了分布式MPC的不同控制结构。内容涵盖MPC的基本公式化、性能指标、优化问题以及相关算法步骤,同时比较了集中式MPC、单层分布式MPC和分层分布式MPC的优缺点和适用场景。最后通过流程图和表格形式总结了双模式MPC的算法步骤和控制结构选择思路,并提供了操作建议,以帮助在实际工业系统中更好地应用MPC技术。

tea88的博客 168

家里摄像头录像存 NAS,空间爆满了怎么办?一招实现设定容量自动清理实现循环存储!

📷 家用摄像头录像久了会撑爆 NAS 吗?别担心,这篇文章教如何实现自动清理录像,释放 NAS 空间,避免爆盘🧹

XiaoqiangClub的博客 1882

保边滤波之Mean shift filter

保边滤波之Mean shift filter 目录 保边滤波之Mean shift filter 一、算法原理 二、练手实现的算法代码如下: 三、实现结果 一、算法原理 在OpenCV中,meanshift filter函数为 p...

大熊 1561

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

WINCC7.3破解文件

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

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: java 导出excel 工具类使用
下一篇: 解决java项目控制台、日志出现乱码
weixin_44310899
博客等级 码龄8年 8粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值