场景1:
将aaa=aaa1&ccc=ccc3&bbb=bbb2&ddd=ddd4这样的请求参数转换成Map。
/**
*
* @param result 带分隔的url参数
* @return
*/
public static Map<String,String> converResultStringToMap(String result){
Map<String,String> map =null;
if(StringUtils.isNotBlank(result)){
if(result.startsWith("{")&& result.endsWith("}")){
result =result.substring(1,result.length ()-1);
}
map = parseQString(result);
}
return map;
}
private static Map<String, String> parseQString(String params) {
Map<String,String> map=new HashMap<>();
String[] pairs = params.split ("&");
for(String item : pairs) {
String[] pair = item.split ("=");
System.out.println (pair.length);
if (pair .length==2){
map.put (pair [0], pair [1]);
}
}
return map ;
}
接口测试如下:
接口测试一:
@RequestMapping(value = "/appTransReq",method =RequestMethod.GET)
@ResponseBody
public Map<String,String> hello(){
Map<String,String> map = new HashMap<> ();
map.put ("aaa","aaa1");
map.put ("bbb","bbb2");
map.put ("ccc","ccc3");
map.put ("ddd","ddd4");
String str = HttpRequestHelper.getParams(map);
Map<String, String> map1 = HttpRequestHelper.converResultStringToMap (str);
return map1;
}
Test测试二:
@Test
public void h1(){
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
httpHeaders.set("Accept","*/*");
HttpEntity<String> response = new HttpEntity<> ("123",httpHeaders);
ResponseEntity<String> responseEntity = restTemplate.exchange ("http://localhost:8081/appTransReq", HttpMethod.GET, response, String.class);
System.out.println(responseEntity);
Map<String, String> rsData = HttpRequestHelper.converResultStringToMap (responseEntity.getBody ());
System.out.println(rsData);
}
打印结果:
{"aaa":"aaa1","ccc":"ccc3","bbb":"bbb2","ddd":"ddd4"}
场景2:
将Map中的数据转换成:aaa=aaa1&ccc=ccc3&bbb=bbb2&ddd=ddd4的形式。
/**
*keyOne=valueOne&keyTwo=valueTwo
* @param paramsMap
* @return
*/
public static String getParams(Map<String, String> paramsMap) {
String params = "";
Iterator<String> iterator = paramsMap.keySet().iterator();
while(iterator.hasNext()) {
String key = iterator.next();
params += key + "=" + paramsMap.get(key) + "&";
}
params = params.substring(0, params.length() - 1);
return params;
}
直接引用getParams()方法测试接口一即可:
得出aaa=aaa1&ccc=ccc3&bbb=bbb2&ddd=ddd4的形式。以上两种也是开发中平时经常用的,对一些数据格式转换和处理。
本篇到此结束,谢谢观看。