美文网首页
Android 解析http路径

Android 解析http路径

作者: 因为我的心 | 来源:发表于2023-03-07 11:23 被阅读0次

一、前言:

我们需要把http请求中的参数解析成map键值对,然后对应键值对逻辑处理。

//1、例如这样的请求链接
var url = "www.youdaoyun.com://book_page?bookid=1293&pixel_id=123456789&adjust_no_sdkclick=1"
//2、解析成map集合
{adjust_no_sdkclick=1, pixel_id=123456789, bookid=1293}

二代码、

1、点击运行

binding.btnClick.setOnClickListener {
  var url = "www.youdaoyun.com://book_page?bookid=1293&pixel_id=123456789&adjust_no_sdkclick=1"
  //开始解析
  parseUrl(url)
}

2、解析方法

  /**
     * 解析数据
     * 1、使用//分割数据之后,得到:book_page?bookid=1293&pixel_id=123456789&adjust_no_sdkclick=1
     */
    fun parseUrl(url:String){
        if (url.contains("www.youdaoyun.com://")) {
           if (url.contains("book_page")) {
                //1、使用//分割数据
                val url1: String = url.split("//").get(1)
                // 2、返回的键值对
                val maps: Map<String, String> = urlSplit(url1)
                 Log.d("lyy", maps.toString())
                //3、根据自己的需要,取对应的键值对值
                if (maps.containsKey("bookid")) {
                    val bookid = maps["bookid"]
                    //...做一些页面跳转
                    Log.d("lyy", "----bookid: ${bookid}")
                }
            }
        }
    }


  /**
     * 解析成Map键值对
     * www.youdaoyun.com://book_page?bookid=1293&pixel_id=123456789&adjust_no_sdkclick=1
     * 1、第一次分割之后数据:bookid=1293&pixel_id=123456789&adjust_no_sdkclick=1
     * 2、第二次分割之后数据:bookid=1293&pixel_id=123456789&adjust_no_sdkclick=1
     * 3、第三次分割之后数据:bookid=1293  pixel_id=123456789  adjust_no_sdkclick=1 数组了
     */
    fun urlSplit(url: String): Map<String, String> {
        //返回结果组装
        val map: MutableMap<String, String> = HashMap()
        //1、首先去除空格,按?号分割成数组
        var newUrl = url.trim { it <= ' ' }
        var firtList = newUrl.split("?")
        var strUrlParam = ""
        if (firtList.size > 1) {
            strUrlParam = firtList[1]
        }

        //2、&分割成数组
        var secondList = strUrlParam.split("&")
        secondList.forEach {
            //3、=分割成数组
            var threeList = it.split("=")
            //解析出键值
            if (threeList.size > 1) {
                //正确解析
                map[threeList[0]] = threeList[1]
            }
        }
        return map
    }

相关文章

  • Android周报第二十四期

    1)HTextView源码分析 框架解析 2)Android存储路径你了解多少? 主要方法路径 Environme...

  • OKhttp

    okhttputils Android OkHttp完全解析 是时候来了解OkHttp了 Android Http...

  • 网络

    Http: 请求步骤 地址解析: 解析出协议名,主机名, 端口,对象路径等. 封装Http请求数据包 封装成TCP...

  • Android json解析数据

    Android json解析动态获取key以及解析技巧http://blog.csdn.net/u01307297...

  • Android[系统学习总结]

    1 Android[插件化或称动态加载] Android插件化完全解析 http://www.androidb...

  • Android 性能优化

    Android APP性能优化(最新总结)Android性能优化全方面解析Android性能优化的方方面面http...

  • Android签名认证分析

    **一.Android签名验证流程基础知识及源码解析:**** Android应用程序签名过程分析:http://...

  • Android热修复技术选型-不定时更新

    文章推荐 Android热修复技术选型——三大流派解析 http://bbs.gfan.com/android-8...

  • android存储

    Android中的存储 参考 彻底搞懂Android文件存储---内部存储,外部存储以及各种存储路径解惑[http...

  • Mac Monkey 安装及环境搭建

    1、中文SDK下载路径:http://www.android-studio.org/ 百度网盘下载:链接:http...

网友评论

      本文标题:Android 解析http路径

      本文链接:https://www.haomeiwen.com/subject/mhzvldtx.html