相关疑难解决方法(0)

编码空格字符的URL:+或%20?

何时将URL中的空格编码为+,何时将其编码为%20

url url-encoding

681
推荐指数
5
解决办法
63万
查看次数

查询字符串参数的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万
查看次数

何时将空间编码为加号(+)或%20?

有时,空格会将URL编码为+符号,有时则会%20.有什么区别,为什么会发生这种情况?

urlencode

451
推荐指数
4
解决办法
22万
查看次数

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万
查看次数

URLEncoder无法转换空格字符

我期待着

System.out.println(java.net.URLEncoder.encode("Hello World", "UTF-8"));
Run Code Online (Sandbox Code Playgroud)

输出:

Hello%20World

(20是空格的ASCII十六进制代码)

但是,我得到的是:

Hello+World

我使用了错误的方法吗?我应该使用的正确方法是什么?

java url urlencode

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

“Content-Disposition”的“文件名”中的 UTF-8 字符产生“IllegalArgumentException:意外的字符”

是否可以从 okhttp3 客户端发送 UTF-8 字符?

\n

对于以下字符串:

\n
String fileName = "3$ M\xc3\xb9 F'RAN\xc3\xa7\xc3\xa9_33902_Country_5_202105";\nString contentDisposition = "attachment;filename=" + "\\"" +  fileName + "\\"";\n
Run Code Online (Sandbox Code Playgroud)\n

我已经尝试过(对于 contentDisposition 标头):

\n
Headers headers = new Headers.Builder()\n                       .addUnsafeNonAscii("Content-Disposition", contentDisposition)\n                       .add("Authorization", bearer)\n                       .add("Content-type", "application/octet-stream")\n                       .build();\n             Request request = new Request.Builder()\n                     .headers(headers)\n                     .post(requestBody) \n                     .url(urlAddress)\n                     .build();\n
Run Code Online (Sandbox Code Playgroud)\n

但服务器收到:3$ M\xc3\x83\xc2\xb9 F'RAN\xc3\x83\xc2\xa7\xc3\x83\xc2\xa9_33902_Country_5_202105

\n

该请求发送给一个固定的合作伙伴,因此我无法访问后端。

\n

application/octet-stream是后端需要的。

\n

身体是这样创建的:

\n
byte[] data = FileUtils.readFileToByteArray(file);\nRequestBody requestBody = RequestBody.create(data);\n
Run Code Online (Sandbox Code Playgroud)\n

它与 Postman 完美配合。

\n

完整的 MVCE(无法包含文件和后端信息,但无论如何它之前都会崩溃,所以您可以启动这个确切的代码,它应该会抛出错误):

\n …

java http-headers okhttp

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

标签 统计

java ×4

urlencode ×4

url ×3

http ×2

encoding ×1

http-headers ×1

okhttp ×1

url-encoding ×1