get请求URL传参需要 进行url编码,只能编码参数,不能整个编码URL

package com.bonc.bxm.security.common.util;import lombok.extern.slf4j.Slf4j;import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.StringTokenizer;/*** Url 工具类* @ClassName UrlUtils* @Description TODO*/
@Slf4j
public class UrlUtils {public static void main(String[] args)throws Exception {String str ="http://172.16.68.12:8777/bxmLabelLabrary/getPageLabrary?timestamp=1657007739565&name=^&pageNum=1&pageSize=9";String result=GetRealUrl(str);System.out.println(result);}//对url中的参数进行url编码public static String GetRealUrl(String str) {try {int index = str.indexOf("?");if (index < 0) return str;String query = str.substring(0, index);String params = str.substring(index + 1);Map map = GetArgs(params);//Map map=TransStringToMap(params);String encodeParams = TransMapToString(map);return query + "?" + encodeParams;} catch (Exception e) {log.error(e.getMessage(), e);}return "";}//将url参数格式转化为mappublic static Map GetArgs(String params) throws Exception{Map map=new HashMap();String[] pairs=params.split("&");for(int i=0;i<pairs.length;i++){int pos=pairs[i].indexOf("=");if(pos==-1) continue;String argname=pairs[i].substring(0,pos);String value=pairs[i].substring(pos+1);value= URLEncoder.encode(value,"utf-8");map.put(argname,value);}return map;}//将map转化为指定的String类型public static String TransMapToString(Map map){java.util.Map.Entry entry;StringBuffer sb = new StringBuffer();for(Iterator iterator = map.entrySet().iterator(); iterator.hasNext();){entry = (java.util.Map.Entry)iterator.next();sb.append(entry.getKey().toString()).append( "=" ).append(null==entry.getValue()?"":entry.getValue().toString()).append (iterator.hasNext() ? "&" : "");}return sb.toString();}//将String类型按一定规则转换为Mappublic static Map TransStringToMap(String mapString){Map map = new HashMap();java.util.StringTokenizer items;for(StringTokenizer entrys = new StringTokenizer(mapString, "&"); entrys.hasMoreTokens();map.put(items.nextToken(), items.hasMoreTokens() ? ((Object) (items.nextToken())) : null))items = new StringTokenizer(entrys.nextToken(), "=");return map;}
}

get请求URL传参url编码工具类相关推荐

  1. url传参参数编码的解码问题

    JS中encodeURIComponent(URL)编码与decodeURIComponent(URL)解码详解 (1)encodeURIComponent(url)函数 定义和用法 encodeUR ...

  2. php解析url编码,php对URL传参进行编码和解码解析

    1. 对URL 传递的参数进行编码 使用URL 传递参数数据,就是在 URL地址后面加上适当的参数.URL 实体对这些参数进行处理.其使用的方式如下面的格式: 显而易见,这种方法将会把参数暴露出来,安 ...

  3. python get请求 url传参_requests的get请求url参数、url重定向处理及cookies

    需求:在百度搜索www.python66.com,然后将搜索结果保存到文件bd_python66.html 百度搜索的url:https://www.baidu.com/s?wd=搜索词 params ...

  4. vue前后端aes url传参解密再解base64编码

    需求:我们公司做机票订购服务,有自己的平台的订单,也有第三方网站向我们网站导入的用户订单,第三方导入的是通过url传参的方式导入.url会携带用户的相关信息. url里面的参数是经过aes加密和bas ...

  5. Java URL传参中文乱码问题

    2019独角兽企业重金招聘Python工程师标准>>> 我们经常会遇到这样的场景:在URL中传递参数,如果该参数为中文,如果设置不当,会出现乱码问题. URL传参所使用的编码为服务器 ...

  6. 关于url传参中文乱码问题

    之前都一直很不了解中文编码得问题,之前在做项目中没碰到那么头痛的问题.所以一直没有了解中文乱码的问题. 问题描述: 地址: http://localhost:8080/sun-government/c ...

  7. 小程序入门学习06--data、url传参、调用豆瓣api

    豆瓣不能用了,可以用这个 data- 自定义数据属性 设置 <view class='container movie-card' bindtap='f1' data-user-name=&quo ...

  8. 微信小程序页面跳转,url传参参数丢失问题

    微信小程序页面跳转,url传参参数丢失问题 // pages/order/purchase/index.js// 跳转到采购订单详情toPurchaseOrderDetail(e) {// conso ...

  9. URL传参时 从URL中获取中文参数的方法

    利用url传参时如果url中的参数是中文时因为编码类型不同在页面中获取会出现乱码 使用此方法能获取url中的参数值 并解决乱码问题 调用时直接 GetUrlByParamName("参数名& ...

最新文章

  1. 直接插入排序与希尔排序
  2. python参数化_Python 中如何实现参数化测试的方法示例
  3. Zabbix server is not running
  4. 【STM32】FLASH擦写+FLASH相关操作+注意事项
  5. [HttpClient]HTTPClient PostMethod 中文乱码问题解决方案(2种)
  6. matlab学习技巧
  7. 打印工资条怎么做到每个人都有表头明细_快速制作工资条的方法
  8. 《Qt 实战一二三》
  9. 定义日期或日期和时间格式
  10. matlab tube函数,2015-08-25-OpenCV for Matlab Users (5) - OpenCV 自身易搞混的函数辨析
  11. Python语言程序设计 测验6: 组合数据类型 (第3周)
  12. 华宇(大连)笔试-20190620
  13. 论文研读 —— 6. ImageNet Classification with Deep Convolutional Neural Networks (2/3)
  14. 评论区抽奖程序2.0
  15. 防近视护眼台灯哪个牌子好?无蓝光无频闪的护眼台灯推荐
  16. 2020校招笔试之新华三
  17. java全拼,Java获取汉字全拼和首拼
  18. 【读书】听“樊登读书会”的要点和实践
  19. 尚硅谷python培训怎么样
  20. 【大学计算机技术】第三、四章 测试4

热门文章

  1. MySQL之MyIsam索引
  2. swift 字符串包含
  3. Makefile编写运行
  4. 优酷网 存在sql注入漏洞
  5. ckeditor4.5以上使用行间距插件lineheight扩充
  6. 怎样自己直接在织梦源码上在网站底部添加备案号
  7. Linux将一个文件夹或文件夹下的所有内容复制或移动到另一个文件夹
  8. 按键screenshot
  9. Ubuntu 22 .4安装wps office 2019并解决字体缺失问题教程
  10. 微信新玩法,这个隐藏福利太爽了!!!