如何在Android中处理URI.Builder类中的端口

问题描述 投票:0回答:2

在开发环境中测试我的Android应用程序时,我想连接到在端口9000上运行的服务器。但是当我将端口提供给Builder.authority(“localhost:9000”)时,它不起作用。另一方面,如果我像 new URL("localhost:9000") 一样手动创建相同的 URL,则它可以正常工作。

有什么替代方案吗?

android uri uribuilder
2个回答
6
投票

Uri.Builder 将对您的 URL 进行编码,以便将 ':' 替换为 %3 。

为了防止编码,请使用构建器函数的编码版本:

String host = "localhost:9000";
Uri.Builder builder = new Uri.Builder();
builder.encodedAuthority(host);

0
投票

http://twigstechtips.blogspot.in/2011/01/android-create-url-using.html找到解决方案。引用:

Uri.Builder b = Uri.parse("http://www.yoursite.com:12345").buildUpon();
b.path("/path/to/something/");
b.appendQueryParameter("arg1", String.valueOf(42));

if (username != "") {
   b.appendQueryParameter("username", username);
}

String url = b.build().toString();
© www.soinside.com 2019 - 2024. All rights reserved.