使用Java编码URL参数

时间:2012-06-08 14:07:11

标签: java

我想在JAVA

中编码URL参数的一部分
http://statebuild-dev.com/iit-title/size.xml?id=(102T OR 140T)

http://statebuild-dev.com/iit-title/size.xml?id=(102%20OR%20140)

尝试使用URI进行编码,但它也编码?这是我不想要的。在URL中,我想在'='

之后对部件进行编码
URI uri = new URI("http", 
    "statebuild-dev.com/iit-title", "/size.xml?id=(102 OR 140)", null);
//URL url = uri.toURL();
System.out.println(uri.toString());
System.out.println(url1);

谢谢

4 个答案:

答案 0 :(得分:3)

你想在添加到url之前使用URLEncoder对每个查询参数进行编码,例如:

String encodedValue = URLEncoder.encode("(102 OR 140)", "UTF-8");

答案 1 :(得分:1)

您使用了错误的构造函数。 试试这个:

URI uri = new URI("http","statebuild-dev.com", "/iit-title/size.xml", "id=(102 OR 140)", null);

另见java.net.URLEncoder

答案 2 :(得分:1)

This answer对编码URI / URL的各个部分进行了很好的讨论。你走在正确的轨道上,但你的具体问题是你的URI的各个部分是错误的。您需要使用带有权限,路径,查询和片段的多部分构造函数:

URI uri = new URI("http", "statebuild-dev.com", "/iit-title/size.xml", "id=(102 or 104)", null);
System.out.println(uri.toString());
System.out.println(uri.toASCIIString());

答案 3 :(得分:0)

java.net.URI课程可以提供帮助;在您找到的URL文档中

  

请注意,URI类在某些情况下会执行其组件字段的转义。管理URL编码和解码的推荐方法是使用URI

选中thread