相关疑难解决方法(0)

查询字符串参数的Java URL编码

说我有一个URL

http://example.com/query?q=
Run Code Online (Sandbox Code Playgroud)

我有一个用户输入的查询,例如:

随机字500英镑银行$

我希望结果是一个正确编码的URL:

http://example.com/query?q=random%20word%20%A3500%20bank%20%24
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?我尝试URLEncoder并创建了URI/URL对象,但它们都没有完全正确.

java url encoding http urlencode

672
推荐指数
8
解决办法
88万
查看次数

Java中的HTTP URL地址编码

我的Java独立应用程序从用户获取一个URL(指向一个文件),我需要点击它并下载它.我面临的问题是我无法正确编码HTTP URL地址......

例:

URL:  http://search.barnesandnoble.com/booksearch/first book.pdf

java.net.URLEncoder.encode(url.toString(), "ISO-8859-1");
Run Code Online (Sandbox Code Playgroud)

回报我:

http%3A%2F%2Fsearch.barnesandnoble.com%2Fbooksearch%2Ffirst+book.pdf
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是

http://search.barnesandnoble.com/booksearch/first%20book.pdf
Run Code Online (Sandbox Code Playgroud)

(空间由%20取代)

我猜URLEncoder不是为了编码HTTP URL而设计的... JavaDoc说"用于HTML表单编码的实用程序类"......有没有其他方法可以做到这一点?

java http urlencode

356
推荐指数
14
解决办法
35万
查看次数

如何编码URL参数?

我试图将参数传递给URL,如下所示:

http://www.foobar.com/foo?imageurl=
Run Code Online (Sandbox Code Playgroud)

并且我想传递由另一个API生成的参数suchas和image URL,并且图像的链接结果如下:

http://www.image.com/?username=unknown&password=unknown
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用URL时:

http://www.foobar.com/foo?imageurl=http://www.image.com/?username=unknown&password=unknown
Run Code Online (Sandbox Code Playgroud)

它不起作用..

我也尝试在imageURL上使用encodeURI和encodeURIComponents,这也行不通.

javascript url encodeuricomponent

105
推荐指数
4
解决办法
10万
查看次数

在Java中编码URL查询参数

如何编码查询参数以在Java中的URL上进行编码?我知道,这似乎是一个明显的问题.

我不确定有两个细微之处:

  1. 空格应该在网址上编码为"+"还是"%20"?在Chrome中,如果我输入"http://google.com/foo=?bar me",Chrome会将其更改为使用%20进行编码
  2. 将冒号":"编码为%3B是否必要/正确?Chrome没有.

笔记:

  • java.net.URLEncoder.encode似乎没有用,它似乎是为了提交表单的编码数据.例如,它+代替空间编码空间%20,并编码不必要的冒号.
  • java.net.URI 不编码查询参数

java urlencode

98
推荐指数
5
解决办法
18万
查看次数

为什么Jersey的UriBuilder.build方法编码#'和%',但不是/?

我有一个相当典型的REST API,除了资源的id不是整数,而是字符串,通常包含/字符.因此,如果客户的ID是string/with/slashes该客户的URI应该是http://localhost/customers/string%2Fwith%2Fslashes.返回客户列表时,我想用UriBuilder构造URI,这样我就可以把它放在ATOM风格的链接元素的href中.但它不太有效; 这是一个小测试类,显示我的意思:

@Path("/customers")
public class JerseyTest {

  @Path("{id}")
  public Customer getCustomer(@PathParam("{id}") String id) {
    return null;
  }

  public static void main(String[] args) {
    buildURI("string#with#hashes"); // => http://localhost/customers/string%23with%23hashes
    buildURI("string/with/slashes"); // => http://localhost/customers/string/with/slashes
  }

  public static void buildURI(String id) {
    UriBuilder builder = UriBuilder.fromUri("http://localhost");
    builder.path(JerseyTest.class).path(JerseyTest.class, "getCustomer");
    URI uri = builder.build(id);
    System.out.println(uri);
  }
}
Run Code Online (Sandbox Code Playgroud)

#太棒了,我们编码为我所期望的,但/我们做不.我尝试使用builder.build(URLEncoder.encode(id)),但随后UriBuilder编码了%,所以你得到了.../string%252Fwith%252Fslashes!

在我看来,不一致的,它编码#%而不是/,但我怀疑是有很好的理由对此我没有看到.所以我的问题是:

  1. 我怎样才能得到UriBuilder给我.../string%2Fwith%2Fslashes …

rest jax-rs urlencode jersey

12
推荐指数
1
解决办法
5040
查看次数

编码和解码rfc2396 URL

对URL字符串进行编码的最佳方法是什么,使它们符合rfc2396并解码符合rfc2396的字符串,例如将%20替换为空格字符?

编辑:URLEncoder和URLDecoder类编码/解码符合rfc2396的URL,它们编码为MIME类型application/x-www-form-urlencoded,用于编码HTML表单参数数据.

java rfc2396

10
推荐指数
1
解决办法
1万
查看次数

什么是不可变引用?

嗨,我发现 Uri 是不可变引用,我不知道不可变引用的确切含义是什么……有人可以帮助我吗?

android

2
推荐指数
1
解决办法
2750
查看次数