2013-02-12 24 views
0

我需要将包含url的字符串发布到服务器我已经能够对url进行编码,但是这将编码整个字符串,我只需要url链接进行编码和解码当得到这个数据回到android中显示。如何传递来自android的查询字符串中包含url的字符串

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 

在此先感谢

回答

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(); 
+0

我正在使用这个生成器一个谢谢你的回复 – Pratik 2013-02-12 09:54:50

+0

然后你需要的是:URLEncoder.encode是从包:java.net.URLEncoder; – PaNaVTEC 2013-02-12 09:57:07

+0

请检查我的问题 – Pratik 2013-02-12 10:03:00

1

尝试使用Beloq路

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

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

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

+0

u r编码字符串不是url我只想编码字符串url不是整个字符串和字符串是动态的,由用户输入 – Pratik 2013-02-12 10:08:04

0

构建分隔url和文本的动态字符串。举例来说,你可以不喜欢

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

正如你所看到的,我使用的符号作为分隔符的组合。

现在使用分割字符串,

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

你也可以使用StringTokenizer类!

希望这会有所帮助!

相关问题