从Android Kotlin上的API URL解析单个查询参数数据的最简单方法

时间:2019-06-16 21:14:24

标签: android kotlin query-parameters

在我的Android应用中,我需要使用以下格式从某些API端点获取确切的值:

{ WebElement element = driver.find_element_by_link_text("Cancel") actions builder = ActionChains(driver) builder.move_to_element(element) element.perform }

获取“谢谢!您的文件已成功提交!”的最佳方法是什么?使用https://demo.com/api/v1/?msg=Thank+you!+Your+files+were+submitted+successfully!&status=Successful进行显示?

要添加的特殊说明:

  1. 有一种获取查询的方法是Kotlin。但是它带有一个错误,即无法将值中的android.net.URI.getQueryParameter()或特殊字符解析为空格字符。

  2. Android 6.0版本删除了对Apache HTTP客户端的支持,这就是+也不起作用的原因。

1 个答案:

答案 0 :(得分:0)

使用android.net.UrlQuerySanitizer来解析上述形式的API端点中的各个值,如下所示:

import android.net.UrlQuerySanitizer

//..

val sanitizer = UrlQuerySanitizer()
sanitizer.setAllowUnregisteredParamaters(true)
sanitizer.parseUrl(url)  
var msg : String? = sanitizer.getValue("msg")

//For removing the "+" signs or any other unwanted signs to get a displayable message like the question:

msg?.let {
    if (it.contains("+")) {
        msg = it.replace("+", " ")
    }
}