使用HashMap对象传递url参数实用工具类

简介:

代码如下:


package com.yanek.util;

import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;



public class HttpUtil {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		Map<String, String> paramValues = new HashMap<String, String>();
		paramValues.put("b", "2");
		paramValues.put("a", "1");
		paramValues.put("c","3");
		paramValues.put("d","4");
		paramValues.put("e","5");
		System.out.println("post params::::"+getParams("post",paramValues));
		System.out.println("get params::::"+getParams("get",paramValues));
		System.out.println("post params::::"+getParamsOrderByKey("post",paramValues));
		System.out.println("get params::::"+getParamsOrderByKey("get",paramValues));

	}
	/**
	 * 得到参数列表字符串
	 * @param method   请求类型 get or  post
	 * @param paramValues 参数map对象
	 * @return  参数列表字符串
	 */
	public static String getParams(String method,Map<String, String> paramValues)
	{
		String params="";
		Set<String> key = paramValues.keySet();
		String beginLetter="";
		if (method.equalsIgnoreCase("get"))
		{
			beginLetter="?";
		}

		for (Iterator<String> it = key.iterator(); it.hasNext();) {
			String s = (String) it.next();
			if (params.equals(""))
			{
				params += beginLetter + s + "=" + paramValues.get(s);
			}
			else
			{
				params += "&" + s + "=" + paramValues.get(s);
			}
		}
		return params;
	}
	
	
	/**
	 * 按照key排序得到参数列表字符串
	 * @param method   请求类型 get or  post
	 * @param paramValues 参数map对象
	 * @return  参数列表字符串
	 */
	public static String getParamsOrderByKey(String method,Map<String, String> paramValues)
	{
		String params="";
		Set<String> key = paramValues.keySet();
		String beginLetter="";
		if (method.equalsIgnoreCase("get"))
		{
			beginLetter="?";
		}
		List<String> paramNames = new ArrayList<String>(paramValues.size());
		paramNames.addAll(paramValues.keySet());
		Collections.sort(paramNames);
		for (String paramName : paramNames) {
			
			if (params.equals(""))
			{
				params += beginLetter + paramName + "=" + paramValues.get(paramName);
			}
			else
			{
				params += "&" + paramName + "=" + paramValues.get(paramName);
			}
		}

		return params;
	}
	
	
	

	 
	 
}

输出如下:


post params::::d=4&e=5&b=2&c=3&a=1
get params::::?d=4&e=5&b=2&c=3&a=1
post params::::a=1&b=2&c=3&d=4&e=5
get params::::?a=1&b=2&c=3&d=4&e=5


目录
相关文章
|
存储 Java API
详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
【10月更文挑战第19天】深入剖析Java Map:不仅是高效存储键值对的数据结构,更是展现设计艺术的典范。本文从基本概念、设计艺术和使用技巧三个方面,详细解析HashMap、TreeMap、LinkedHashMap等实现类,帮助您更好地理解和应用Java Map。
364 3
|
JSON 前端开发 中间件
React读取properties配置文件转化为json对象并使用在url地址中
本文介绍了如何在React项目中读取properties配置文件,将其内容转化为JSON对象,并在请求URL地址时使用这些配置。文章详细说明了异步读取文件、处理字符串转换为JSON对象的过程,并提供了一个封装函数,用于在发起请求前动态生成配置化的URL地址。
521 1
|
前端开发 JavaScript
前端JS截取url上的参数
文章介绍了两种前端JS获取URL参数的方法:手动截取封装和使用URLSearchParams。
616 0
|
开发框架 前端开发 .NET
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
Asp.net Webapi 的 Post 方法不能把参数加到 URL 中?试试这样写
365 0
|
Java
JAVA 获取 URL 指定参数的值
JAVA 获取 URL 指定参数的值
285 0
|
存储 JavaScript 前端开发
js原生方法,获取url上面所有参数,并返回一个对象
JavaScript函数`getUrlParameters`用于从URL中提取所有参数并返回一个键值对对象。它接收URL,分割查询字符串,解码参数对,并存储在对象中。重复参数键会被存储为数组。
|
JavaScript
js如何实现修改URL参数并不刷新页面
js如何实现修改URL参数并不刷新页面
|
安全 Java 应用服务中间件
当遇到非法 URL 参数时,如何保障网页正常打开
访问如`http://example.com?a@b=1`的链接出现400 Bad Request错误,这是因为Tomcat不允许请求目标中含有非法字符。Spring Boot 2可通过配置`server.tomcat.relaxed-query-chars`来允许特殊字符,但这样做可能引入安全风险。因此,建议在Nginx层使用`rewrite_by_lua_block`和`ngx.redirect`进行重定向,将非法字符替换为合法形式,如`http://example.com?ab=1`,同时记录日志以监控。此方案能避免直接修改后端代码,提高安全性。
975 0
|
存储 Java
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
|
JavaScript 前端开发 数据格式
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
URL编码【详解】——Javascript对URL进行编码解码的三种方式的区别和使用场景,axios请求拦截器中对get请求的参数全部进行URL编码
1338 0