如何在android的查询字符串中传递包含url的字符串

时间:2013-02-12 09:47:04

标签: android query-string url-encoding

我需要将包含url的字符串发布到我能够对url进行编码的服务器,但这将编码整个字符串,我需要只需要对url链接进行编码和解码,以便将此数据恢复到android中显示。 / p>

mydomain/post.php?mesg=Hello%2Bhow%2Br%2Bu%250A%2BHttp%253A%252F%252Fwww.google.com%250A%250ATesting%2Burl

被修改

我的代码

String postStr = "Hello how r u?
                  http://www.google.com"; // suppose user entered string like this way

Uri.Builder builder = new Uri.Builder()
    .scheme("http")
    .authority(domain)
    .path(pageName)
    .appendQueryParameter("mesg", URLEncoder.encode(postStr, "utf-8"))
String urlStr = builder.build().toString();

执行此操作后获取此结果

Hello+how+r+u%0A+Http%3A%2F%2Fwww.google.com%0A%0ATesting+url 

实际结果要像这样

Hello how r u?
http://www.google.com

Testing url

提前致谢

3 个答案:

答案 0 :(得分:1)

试试这个:

import android.net.Uri;
import android.net.Uri.Builder;

String reqUrl = "http://google.com"
Builder builder = Uri.parse(reqUrl).buildUpon();
builder.appendQueryParameter("mesg", "Value for mesg");
String finalUri = builder.build().toString();

答案 1 :(得分:1)

尝试使用Beloq Way

你不应该编码包含URL的整个String.just编码你要编码和解码的部分。我想下面是要走的路。试试看。虽然我不确定这是你要找的东西。

String name=URLEncoder.encode("Hello hw are you?")+"http://www.google.com"+URLEncoder.encode("Testing url");

希望它会以某种方式帮助。

答案 2 :(得分:0)

构建分隔网址和文本的动态字符串。例如,你可以这样做

String postStr = Hello how r u? %& http://www.google.com

如您所见,我使用符号组合作为分隔符。

现在使用拆分字符串

String[] values = postStr.split("%&");

你也可以使用StringTokenizer类!

希望这有帮助!