Asp.net/java 的 [字符串Url] 参数处理
2015-05-18 14:31
477 查看
先看一个msdn Uri类:Uri类 和本篇文章没关系,只是为了方便查询
java:
注意:java版本的ReplaceUrlParam比C#版本的多个去除参数功能(如果value值为null,那么,url就会去掉Key对应的参数)
/// <summary> /// 获取一个url中字符串中?后面的值,以Dictionary<key, value>形式返回 /// </summary> /// <param name="url">url</param> /// <returns>Dictionary<key, value>形式返回</returns> public static Dictionary<string, string> GetParams(string url) { int intPos = url.IndexOf("?"); if (url == null || url.Length < 1 || intPos < 1) { return null; } else { Dictionary<string, string> dt = new Dictionary<string, string>(); string strRight = url.Substring(intPos + 1); string[] arrPram = StringSplit(strRight, "&"); for (int i = 0; i < arrPram.Length; i++) { string[] arrPramName = StringSplit(arrPram[i], "="); dt.Add(arrPramName[0].ToLower(), arrPramName[1].ToLower()); } return dt; } } /// <summary> /// 用指定的key:value 替换目标url的参数是叫key的值,如果不存在,就添加一个参数key=value /// </summary> /// <param name="url">目标url</param> /// <param name="key">目标参数key名字</param> /// <param name="value">新的Value</param> /// <returns>替换后新的url</returns> public static string ReplaceUrlParam(string url, string key, string value) { string new_returnurl = ""; Dictionary<string, string> d = Safe.GetParams(url.ToLower()); d = d ?? new Dictionary<string, string>(); if (d.ContainsKey(key)) { d.Remove(key); d.Add(key, value); } else { d.Add(key, value); } if (d != null && d.Count > 0) { int i = 0; foreach (KeyValuePair<string, string> kv in d) { if (i == 0) { new_returnurl += "?" + kv.Key + "=" + kv.Value; } else { new_returnurl += "&" + kv.Key + "=" + kv.Value; } i++; } } new_returnurl = url.Split('?')[0] + new_returnurl; return new_returnurl; }
java:
/** * 拆分URL,返回参数的键值对 * @Method: GetParams * @ @param url 被处理url * @ @return * @return Map<String,String> * @throws */ public static Map<String, String> GetParams(String url) { int intPos = url.indexOf("?"); if (url == null || url.length() < 1 || intPos < 1) { return null; } else { Map<String, String> map = new HashMap<String, String>(); String strRight = url.substring(intPos + 1); String[] arrPram = strRight.split("&"); for (int i = 0; i < arrPram.length; i++) { String[] arrPramName = arrPram[i].split("="); map.put(arrPramName[0].toLowerCase(), arrPramName[1].toLowerCase()); } return map; } } public static String ReplaceUrlParam(String url, String key, String value) { String new_returnurl = ""; Map<String, String> map = GetParams(url); if (map == null) { map = new HashMap<String, String>(); } if (map.containsKey(key)) { map.remove(key); if(value==null||value==""){ }else{ map.put(key, value); } }else{ if(value==null||value==""){ }else{ map.put(key, value); } } if (map != null && map.size() > 0) { int i = 0; for (Map.Entry<String, String> kv : map.entrySet()) { if (i == 0) { new_returnurl += "?" + kv.getKey() + "=" + kv.getValue(); } else { new_returnurl += "&" + kv.getKey() + "=" + kv.getValue(); } i++; } } new_returnurl = url.split("[?]")[0] + new_returnurl; return new_returnurl; }
注意:java版本的ReplaceUrlParam比C#版本的多个去除参数功能(如果value值为null,那么,url就会去掉Key对应的参数)
相关文章推荐
- ASP.NET中URL中文参数的处理
- ASP.NET DROPDOWNLIST无刷新联动(中文URL参数处理)
- 备忘:JavaScript和ASP.NET中处理url中文参数
- 在ASP.NET中重写URL 方法一:使用Request.PathInfo 参数而不是查询字符串
- Asp.netMVC之URL参数处理(2)
- asp.net处理Json数据时单引号与特殊字符串的处理
- Javascript与ASP.NET(一般处理程序)关于URL(get方式)传递中文乱码问题的解决方案
- 转:asp.net获取url各项参数
- 如何使用 java.net.URLConnection 处理 HTTP 请求?
- ASP.NET MVC在Request中关于URL的参数
- asp.net获取当前网址url的各种属性(文件名、参数、域名 等)的代码
- JAVA 中URL中文参数乱码的处理方法
- html页面post json字符串到asp.net 接收并处理
- Android客户端发送Post/Get请求到Asp.Net服务端一般处理程序Asp.Net进行参数解析
- asp.net获取当前网址url的各种属性(文件名、参数、域名 等)
- ASP.net获取当前url各种属性(文件名、参数、域名等)的方法
- 如何使用 java.net.URLConnection 处理 HTTP 请求?
- ASP.NET程序链接数据库字符串的处理
- asp.net中页面间url参数传递的三种实现方法
- 怎样用java.net.URLConnection来触发和处理HTTP请求?