; - 乌里生成器在Android中'/'由'%2F“和&QUOT更换:QUOT;被替换"%3A" [英] Uri Builder in android - '/' replaced by '%2F' and ":" is replaced by "%3A"
本文介绍了; - 乌里生成器在Android中'/'由'%2F“和&QUOT更换:QUOT;被替换"%3A"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想建立以下URI -
I want to build the following URI -
https://10.112.88.182:8443/Vehicle/services/socialService/login
...
Builder builder = new Builder();
builder.scheme(Constants.URL_SCHEME);
builder.authority(host);
builder.appendPath(service + "/" +method);
return builder.build().toString();
其中
-
URL_SCHEME
-HTTPS
-
主机
-10.112.88.182:8443/Vehicle/services /
-
服务
-socialService
-
方法
-登录
URL_SCHEME
-https
host
-10.112.88.182:8443/Vehicle/services/
service
-socialService
method
-login
在此code运行时我得到以下URI -
When this code runs I get the following URI -
https://10.112.88.182%3A8443%2FVehicle%2Fservices%2F/socialService%2Flogin
/
替换%2F
和:
被替换%3A
推荐答案
这就是 Uri.Builder
的作品。它连接codeS非安全地址的字符有特殊含义的%XX
十六进制值。
That's how Uri.Builder
works. It encodes non-safe URL characters with special meaning to their %xx
hex values.
要prevent编码URI部件都已经正确连接codeD,使用连接codeD
的建设者功能的版本:
To prevent encoding URI parts that are already properly encoded, use the encoded
versions of builder functions:
builder.encodedAuthority(host);
builder.appendEncodedPath(service + "/" +method);
但是,因为所有的URL部分都已经准备就绪,不需要任何进一步的编码方式,它更容易,只需使用普通的的StringBuilder
来连接的部分。
这篇关于; - 乌里生成器在Android中'/'由'%2F“和&QUOT更换:QUOT;被替换"%3A"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文