URL网址参数解析类

/**
 * Created by myc on 2015/12/9.
 */
import android.text.TextUtils;

import java.util.HashMap;
import java.util.Map;

public class URLUtil {

    /**
     * 去掉url中的路径,留下请求参数部分
     * @param strURL url地址
     * @return url请求参数部分
     */
    private static String truncateUrlPage(String strURL)
    {
        if(TextUtils.isEmpty(strURL)){
            return null;
        }
        String strAllParam=null;
        strURL=strURL.trim().toLowerCase();
        String[] arrSplit = strURL.split("[?]");

        //有参数
        if(arrSplit.length>1)
        {
            if(arrSplit[1]!=null)
            {
                strAllParam=arrSplit[1];
            }
        }

        return strAllParam;
    }
    /**
     * 解析出url参数中的键值对
     * @param URL  url地址
     * @return  url请求参数部分
     */
    public static Map<String, String> getRequestParamMap(String URL)
    {
        if(TextUtils.isEmpty(URL)){
            return null;
        }

        String strUrlParam=truncateUrlPage(URL);//得到参数
        if(TextUtils.isEmpty(strUrlParam))
        {
            return null;
        }

        Map<String, String> mapRequest = new HashMap<String, String>();
        //每个键值为一组
        String[] arrSplit=strUrlParam.split("[&]");
        for(String strSplit:arrSplit)
        {
            String[] arrSplitEqual= strSplit.split("[=]");

            //解析出键值
            if(arrSplitEqual.length>1)
            {
                if(!TextUtils.isEmpty(arrSplitEqual[1]))
                {
                    mapRequest.put(arrSplitEqual[0], arrSplitEqual[1]);//正确解析
                }else{
                    mapRequest.put(arrSplitEqual[0], "");//无value
                }
            }
        }
        return mapRequest;
    }
}
时间: 2024-08-09 07:07:27

URL网址参数解析类的相关文章

C#命令行参数解析类以及使用实例

http://blog.csdn.net/jackxinxu2100/article/details/6642694 编写命令行程序时如何进行命令行参数解析至关重要,下面将引用codeproject里面的一个命令行参数解析类并阐述如何使用来说明C#命令行参数解析的过程. 先看参数解析类,分为CommandLine类以及CommandArgs类,前者负责解析,后者负责结果封装,解析的结果分为三类:即 a=b 对应的key/value类型,-a b 对应的option与option value(可省

C# 自定义的针对URL地址的处理类

专门针对URL网址处理的类,可以对URL地址进行Base64的加密和解密,可以通过函数的方式向URL添加参数,可以更新URL中 已有参数的值,分析URL地址的域名.子域名,分析URL的所有参数和参数值,功能非常全面,还可以自己扩充,sharejs.com推荐,非常具有实用 价值 using System; using System.Text.RegularExpressions; using System.Web; using System.Collections.Specialized; na

C#自定义针对URL地址的处理类实例

本文实例讲述了C#自定义针对URL地址的处理类.分享给大家供大家参考.具体分析如下: 这个C#类是专门针对URL网址处理的类,可以对URL地址进行Base64的加密和解密,可以通过函数的方式向URL添加参数,可以更新URL中已有参数的值,分析URL地址的域名.子域名,分析URL的所有参数和参数值,功能非常全面,还可以自己扩充,非常具有实用价值 using System; using System.Text.RegularExpressions; using System.Web; using S

百度URL参数解析

百度URL参数解析 在用Python爬取百度搜索的内容时,发现百度搜索的url非常的长,往往会跟一大段的参数,但其实很多参数都是没有必要的,如同样是搜索java关键字,可以通过 http://www.baidu.com/s?wd=java 如此简单的URL来获取,而下面这个超级复杂的URL也是同样进行了关键字java的搜索: http://www.baidu.com/s?wd=java&rsv_spt=1&rsv_iqid=0xd3c8c51900052eb3&issp=1&

把URL参数解析成一个Json对象

问题:请编写一个JavaScript函数parseQueryString,它的用途是把URL参数解析为一个对象.           eg:var obj=parseQueryString(url); 创建对象的三种形式:        一:                var Person=new Object();                Person.name="Sun";                Person.age=24;        二:         

PHP 命令行参数解析工具类

<?php /** * 命令行参数解析工具类 * @author guolinchao */ class CommandLine { // 临时记录短选项的选项值 private static $shortOptVal = null; // options value private static $optsArr = array(); // command args private static $argsArr = array(); // 是否已解析过命令行参数 private static

CImageList类Create函数参数解析

前面提到了CImageList类的Create(...)函数,虽然MSDN上已经有所解释,但仍有网友问到参数的具体含义,下面就我的理解,对参数进行一次轻量级的剖析 函数原型(其他重载函数请参看msdn):   BOOL Create( int cx, int cy, UINT nFlags, int nInitial, int nGrow ); cx ,cy: 图片的实际像素宽与高,没有问题 nFlags:创建图像列表的类型,包括4/8/16/24/32/位色, nInitial : 创建Ima

java 获取url及url参数解析

java  获取url及url参数解析 一.url编码:URLEncoder.encode(userName); 二.url解码: URLDecoder.decode(userName);

五种URL参数解析方法的性能比较

因为在最近项目中需要解析日志中的 URL 的参数,所以我对比了一下五种不同 的 URL 参数解析方法的性能.URL 参数解析方法: httpclient org.apache.http.client.utils.URLEncodedUtils URLEncodedUtils.parse(query, Charset.forName("UTF-8"));jettyUtil org.eclipse.jetty.util.UrlEncoded MultiMapvalues = new Mul