/**
* 根据api参数字符串获取api参数映射
* @param url
* @return
*/
public static HashMap<String, String> GetApiParamMap(String url){
HashMap<String, String> paramsMap = new HashMap<String, String>();
if(!StringUtils.isEmpty(url)){
String[] keyVlauePairAry = url.split("&");
for (String keyVlauePair : keyVlauePairAry) {
if (StringUtils.isNotBlank(keyVlauePair)) {
int equalIndex = keyVlauePair.indexOf('=');
if(equalIndex==-1 || equalIndex>=keyVlauePair.length()-1) continue;
String titleString = keyVlauePair.substring(0, equalIndex);
String titleValueString = keyVlauePair.substring(equalIndex+1,keyVlauePair.length());
paramsMap.put(titleString,titleValueString);
}
}
}
return paramsMap;
}
netty中的实现
private Map<String, List<String>> decodeParams(String s) {
Map<String, List<String>> params = new LinkedHashMap<String, List<String>>();
String name = null;
int pos = 0; // Beginning of the unprocessed region
int i; // End of the unprocessed region
char c = 0; // Current character
for (i = 0; i < s.length(); i++) {
c = s.charAt(i);
if (c == '=' && name == null) {
if (pos != i) {
name = decodeComponent(s.substring(pos, i), charset);
}
pos = i + 1;
} else if (c == '&') {
if (name == null && pos != i) {
// We haven't seen an `=' so far but moved forward.
// Must be a param of the form '&a&' so add it with
// an empty value.
addParam(params, decodeComponent(s.substring(pos, i), charset), "");
} else if (name != null) {
addParam(params, name, decodeComponent(s.substring(pos, i), charset));
name = null;
}
pos = i + 1;
}
}
if (pos != i) { // Are there characters we haven't dealt with?
if (name == null) { // Yes and we haven't seen any `='.
addParam(params, decodeComponent(s.substring(pos, i), charset), "");
} else { // Yes and this must be the last value.
addParam(params, name, decodeComponent(s.substring(pos, i), charset));
}
} else if (name != null) { // Have we seen a name without value?
addParam(params, name, "");
}
return params;
}
private static String decodeComponent(String s, Charset charset) {
if (s == null) {
return "";
}
try {
return URLDecoder.decode(s, charset.name());
} catch (UnsupportedEncodingException e) {
throw new UnsupportedCharsetException(charset.name());
}
}
private static void addParam(Map<String, List<String>> params, String name, String value) {
List<String> values = params.get(name);
if (values == null) {
values = new ArrayList<String>(1); // Often there's only 1 value.
params.put(name, values);
}
values.add(value);
}
分享到:
相关推荐
java实现对象转化为get请求的param参数String字符串,本人自测非常好用,一般对象可以转化键值对的格式,但是最近项目需要自己手动拼接对象作为get请求的参数,百度了一堆还不如自己写一个,欢迎各位使用,有什么...
在 Lotus Domino 环境中,使用 Java 语言编写代理可以获取传递的 URL 参数,并将其转换为 JSON 字符串。本文将详细介绍如何使用 Java 代理获取 URL 参数,并将其转换为 JSON 字符串。 首先,让我们看一下如何在 ...
第一步:确保java环境就绪 第二步:展开压缩包,... 替换为自己想下发的动态参数 第三步:打开 APIDemo_java\src\com\miaodiyun\httpapidemo\SmsApiHttpSendTest.java 文件,在编辑器执行RUN操作,查看执行结果
一个非常棒的程序,用于修改request携带的参数信息。使用了filter等技术。
一个json相互转换的万能java类(JsonUtil.java), 这个下面就是万能转换类的方法注释,懂java的相信都能看懂。 /** *//** * 从一个JSON 对象字符格式中得到一个java对象 * @param jsonString * @param ...
参数为:flag,strSrcParas,PUBLICKEY,callback。 通过回调函数 得到加密串ccbParam。 nodejs调用java可以通过child_process模块中的spawn()函数实现。 var spawn = require('child_process').spawn; nodejsJava....
* 需要转换的文件目录,转换后的文件目录--可以为同一路径 * * @param srcDirPath 需要转换的文件目录 * @param desDirPath 转换后的文件目录 * @param srcCodeStyle 当前文件编码格式 * @param desCodeStyle...
Java Server Faces API 组件标签 API Reference 速查手册 HTML_BASIC RenderKit javax.faces.Command javax.faces.Button javax.faces.Link javax.faces.Data javax.faces.Table javax.faces.Form javax.faces...
import java.util.HashMap; import java.util.Iterator; /** * 文件名:CacheManager.java 管理缓存 * 版本信息:V1.0 * 日期:2013-06-18 * Copyright BDVCD Corporation 2013 * 版权所有 ...
* @param param 参数列表 * @return 修改记录行数 */ public int update(String sql,List param){ int row = -1; Connection conn = null; PreparedStatement update = null; try { conn = DButil.getConn...
Smali2PsuedoJava 是一个小型 Java 应用程序,可将 Smali 代码转换为类 Java 代码。 输入:apktool 生成的 Smali 代码输出:PsuedoJava(类 Java 代码) 要使用,请在 CLI 中输入此命令 java -jar Smali2...
* 解析properties文件为对象 * @param * @param propPath * @param cls * @return * @throws InstantiationException * @throws IllegalAccessException * @throws IOException */ public ...
java字符转换类代码,可以实现判断字符串是否为空,并删除首尾空格,字符串替换函数,代码转换,GBK转换为ISO-8859-1,代码转换 从srcCode转换为destCode,代码转换,GBK转换为big5,替换非法字符,标记本身等于分隔...
用java代码实现了UPDATE,这里是java源代码。‘增删改查’记录,‘改查’实现了目前增有得完善代码,删没删除需求就没添加删的代码。源代码,需要在param.properties文件中填写对应KEYValue值。同时也可以参考我的...
java-echart.js柱状图、饼状图、折线图 /** * 柱状图 * @param classRoom * @param req * @param resp * @param model * @return */ @RequestMapping(value = "/zhuzhuangtu") public String ...
应用范围 在使用Loadrunner进行性能测试时,经常遇到一种情况,需要通过web页面修改某事务的状态。... 参数说明:ParamName:存放得到的动态内容的参数名称listofAttributes:其它属性,包括:Notfound,LB,RB,RelFra
/* java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */
Gson是Google的一个开源项目,可以将Java对象转换成JSON,也可能将JSON转换成Java对象。 Gson里最重要的对象有2个Gson 和 GsonBuilder Gson有2个最基本的方法 1) toJson() – 转换java 对象到JSON 2) from...
7.0 sensio / framework-extra-bundle〜3.0 安装它的最简单方法是使用Composer: $ composer require zalas/param-converter-bundle:^1.0服务参数转换器服务参数转换器调用已配置的服务,以将请求属性转换为对象。...
jsp ${param.id}用法.docx