UrlUtils工具类,Java URL工具类,Java URL链接工具类

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年7月15日

http://www.cnblogs.com/fanshuyao/

Java代码  
  1. import java.util.HashMap;
  2. import java.util.Map;
  3. import java.util.Set;
  4. public class UrlUtils {
  5. /**
  6. * 向url链接追加参数
  7. * @param url
  8. * @param params Map<String, String>
  9. * @return
  10. */
  11. public static String appendParams(String url, Map<String, String> params){
  12. if(StrUtils.isBlank(url)){
  13. return "";
  14. }else if(StrUtils.isEmptyMap(params)){
  15. return url.trim();
  16. }else{
  17. StringBuffer sb = new StringBuffer("");
  18. Set<String> keys = params.keySet();
  19. for (String key : keys) {
  20. sb.append(key).append("=").append(params.get(key)).append("&");
  21. }
  22. sb.deleteCharAt(sb.length() - 1);
  23. url = url.trim();
  24. int length = url.length();
  25. int index = url.indexOf("?");
  26. if(index > -1){//url说明有问号
  27. if((length - 1) == index){//url最后一个符号为?,如:http://wwww.baidu.com?
  28. url += sb.toString();
  29. }else{//情况为:http://wwww.baidu.com?aa=11
  30. url += "&" + sb.toString();
  31. }
  32. }else{//url后面没有问号,如:http://wwww.baidu.com
  33. url += "?" + sb.toString();
  34. }
  35. return url;
  36. }
  37. }
  38. /**
  39. * 向url链接追加参数(单个)
  40. * @param url
  41. * @param name String
  42. * @param value String
  43. * @return
  44. */
  45. public static String appendParam(String url, String name, String value){
  46. if(StrUtils.isBlank(url)){
  47. return "";
  48. }else if(StrUtils.isBlank(name)){
  49. return url.trim();
  50. }else{
  51. Map<String, String> params = new HashMap<String, String>();
  52. params.put(name, value);
  53. return appendParams(url, params);
  54. }
  55. }
  56. /**
  57. * 移除url链接的多个参数
  58. * @param url String
  59. * @param paramNames String[]
  60. * @return
  61. */
  62. public static String removeParams(String url, String... paramNames){
  63. if(StrUtils.isBlank(url)){
  64. return "";
  65. }else if(StrUtils.isEmptyArray(paramNames)){
  66. return url.trim();
  67. }else{
  68. url = url.trim();
  69. int length = url.length();
  70. int index = url.indexOf("?");
  71. if(index > -1){//url说明有问号
  72. if((length - 1) == index){//url最后一个符号为?,如:http://wwww.baidu.com?
  73. return url;
  74. }else{//情况为:http://wwww.baidu.com?aa=11或http://wwww.baidu.com?aa=或http://wwww.baidu.com?aa
  75. String baseUrl = url.substring(0, index);
  76. String paramsString = url.substring(index + 1);
  77. String[] params = paramsString.split("&");
  78. if(!StrUtils.isEmptyArray(params)){
  79. Map<String, String> paramsMap = new HashMap<String, String>();
  80. for (String param : params) {
  81. if(!StrUtils.isBlank(param)){
  82. String[] oneParam = param.split("=");
  83. String paramName = oneParam[0];
  84. int count = 0;
  85. for(int i=0; i<paramNames.length; i++){
  86. if(paramNames[i].equals(paramName)){
  87. break;
  88. }
  89. count ++;
  90. }
  91. if(count == paramNames.length){
  92. paramsMap.put(paramName, (oneParam.length > 1)?oneParam[1]:"");
  93. }
  94. }
  95. }
  96. if(!StrUtils.isEmptyMap(paramsMap)){
  97. StringBuffer paramBuffer = new StringBuffer(baseUrl);
  98. paramBuffer.append("?");
  99. Set<String> set = paramsMap.keySet();
  100. for (String paramName : set) {
  101. paramBuffer.append(paramName).append("=").append(paramsMap.get(paramName)).append("&");
  102. }
  103. paramBuffer.deleteCharAt(paramBuffer.length() - 1);
  104. return paramBuffer.toString();
  105. }
  106. return baseUrl;
  107. }
  108. }
  109. }
  110. return url;
  111. }
  112. }
  113. public static void main(String[] args) {
  114. /*String a = "http://wwww.baidu.com";
  115. String b = "http://wwww.baidu.com?";
  116. String c = "http://wwww.baidu.com?aa=11";
  117. System.out.println("a="+appendParam(a, "bb", "1"));
  118. System.out.println("b="+appendParam(b, "bb", "1"));
  119. System.out.println("c="+appendParam(c, "bb", "1"));*/
  120. String d = "http://wwww.baidu.com?aa";
  121. String e = "http://wwww.baidu.com?aa=11&bb=22&cc=33";
  122. String f = "http://wwww.baidu.com?aa=11&bb=22&cc=33&dd=";
  123. String g = "http://wwww.baidu.com?aa=11&bb=22&cc=33&dd";
  124. /*List<String> params = new ArrayList<String>();
  125. params.add("aa");
  126. System.out.println("d="+removeParams(d, params));
  127. params.add("bb");
  128. System.out.println("e="+removeParams(e, params));
  129. params.add("cc");
  130. System.out.println("f="+removeParams(f, params));
  131. params.add("dd");
  132. System.out.println("g="+removeParams(g, params));*/
  133. System.out.println("g="+removeParams(g, "cc","aa"));
  134. }
  135. }

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

©Copyright 蕃薯耀 2017年7月15日

http://www.cnblogs.com/fanshuyao/

转载于:https://www.cnblogs.com/fanshuyao/p/7181835.html

UrlUtils工具类,Java URL工具类,Java URL链接工具类相关推荐

  1. java url类下载_Java根据url下载图片或文件的工具类-Fun言

    package cn.funyan.utils; import java.io.FileOutputStream; import java.io.IOException; import java.io ...

  2. java qlv转mp4 代码_Java实用工具类五:URL转码、解码类

    package com.cn.hnust.util; import java.io.UnsupportedEncodingException; import java.util.HashMap; im ...

  3. java 图形校验_java图形验证码生成工具类 web页面校验验证码

    java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...

  4. java properties文件 安全_java 数据库读取工具类(读取config.properties配置文件)[包含线程安全] | 学步园...

    java 数据库读取工具类(读取config.properties配置文件)[包含线程安全] 数据库读取工具类 package com.db; import java.sql.Connection; ...

  5. Java - HuTool 使用 EscapeUtil、XmlUtil等工具类(四)

    Java - HuTool 使用 EscapeUtil.XmlUtil等工具类(四) 本篇主要介绍 HuTool工具, 其是 java工具类,对于一些静态方法进行封装,虽然很小,但很全,里面拥有平时我 ...

  6. java 手机号脱敏,身份证号脱敏 工具类

    java 手机号脱敏,身份证号脱敏 工具类 import org.apache.commons.lang3.StringUtils;/*** * @title: 脱敏工具类* @author: wll ...

  7. java 等额本金等额本息工具类

    2019独角兽企业重金招聘Python工程师标准>>> 等额本息: /*** Description:等额本息工具类* Copyright: Copyright (corporati ...

  8. java 解压缩 工具类_Java实现的zip压缩及解压缩工具类示例

    本文实例讲述了Java实现的zip压缩及解压缩工具类.分享给大家供大家参考,具体如下: import java.io.BufferedInputStream; import java.io.Buffe ...

  9. Android+Java中使用Aes对称加密的工具类与使用

    场景 Android+Java中使用RSA加密实现接口调用时的校验功能: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/11146 ...

最新文章

  1. html div 隐藏滚动条样式,div滚动条样式隐藏与显示
  2. 基于堆栈的虚拟机实现
  3. STM32 F101系列的程序怎么转化为STM F103出现编译错误!
  4. 第七章:XAML vs. code(3)
  5. SQL Server2012 安装方法
  6. 为什么我们仍然坚持用C++做游戏服务器
  7. Data Binding 使用教程一
  8. ubuntu之解决安装python3.6.4后出现error while loading shared libraries: libpython3.6m.so.1.0的问题
  9. matlab中找不到指定的模块,Matlab装好后启动提示找不到指定模块如何解决?很急...
  10. Clickhouse 实现row_number、dense_rank
  11. 基于STM32的DMX512开发
  12. phpstudy的安装及pikachu渗透平台的搭建
  13. LaTeX模板 - FORMCM
  14. 如何删除iPhone或iPad上的所有照片
  15. MYSQL报1265和1366错误
  16. 使用scikit-image feature计算图像特征与常见特征示例
  17. 荐9个可以帮助你的公众号
  18. DeepLearning-500-questions
  19. 五金模具展开图绘制方法与技巧
  20. InTouch与Kepware OPC server通讯配置

热门文章

  1. 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)
  2. keepalived + glusterfs实现高可用
  3. JavaScriptjQuery.查询DOM元素
  4. 矩阵连乘问题(动态规划算法)
  5. 使用mkfs.ext4格式化大容量磁盘
  6. webapp检测安卓app是否安装并launch
  7. 适合初学者对Yaf框架的学习(一)
  8. (实用)Ubuntu 、CentOS更换国内源
  9. Servlet学习-request
  10. shaderlab学习一