- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 UriBuilder
的 com.sun.jersey.api.uri.UriBuilderImpl
实现来编码 URL(版本 1.19)。当我的 URL 的查询参数同时包含大括号和空格时,就会出现问题。
示例:
UriBuilder uriBuilder = fromUri("www.something.com")
.queryParam("q", "{some thing}");
return uriBuilder.build().toString();
此操作失败:
javax.ws.rs.core.UriBuilderException: java.net.URISyntaxException: Illegal character in query at index 27: www.something.com?q=%7Bsome thing%7D
这很有趣,就好像我去掉大括号一样,我得到了预期的编码:www.something.com?q=some+thing
...
org.apache.http.client.utils.URIBuilder
按照我的预期对其进行编码,即:www.something.com?q=%7Bsome+thing%7D
我尝试过这样做:
...
.queryParam("q", UriComponent.encode(searchQuery, UriComponent.Type.QUERY_PARAM)).
.build();
但是空格字符也会被编码为 www.something.com?q=%7Bsome%2Bthing%7D
。
我需要做什么才能获取 www.something.com?q=%7Bsome+thing%7D
?
最佳答案
我正在使用 jersey-client v1.9.1 并且您的代码运行没有错误。
这是我的 Maven 依赖项:
<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-client -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-client</artifactId>
<version>1.9.1</version>
</dependency>
以及java代码:
import java.net.URI;
import javax.ws.rs.core.UriBuilder;
public class Main {
public static void main(String[] args) throws Exception {
try {
URI url = UriBuilder.fromUri("www.something.com")
.queryParam("q", "{some thing}")
.build();
System.out.println(url);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
输出:www.something.com?q=%7Bsome+thing%7D
更新
大括号是 v1.19 失败的原因(请参阅 the documentation )
这是 v1.19 的工作版本:
URI url = UriBuilder.fromPath("www.something.com")
.queryParam("q", "{value}")
.build("{some thing}", "value");
System.out.println(url);
关于java - UriBuilder 中大括号和空格的编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53435493/
我们在 RedHat 中使用 Postgres 9.2。我们有一个类似于以下的表: CREATE TABLE BULK_WI ( BULK_ID INTEGER NOT NULL, U
根据我的计算,将浮点值转换为计算机存储的二进制值(符号、指数、尾数格式),在 32 位中,1 位用于符号,8 位用于指数。 所以只剩下 23 位来表示数字。 所以我认为具有正确行为的浮点值范围仅为 0
我有一个像这样的临时表: CREATE TABLE `staging` ( `created_here_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTA
下面是我的 HTML: Fact Sheet Facilities and Administrative (F&A) Cost Agreem
我想知道为什么 .add(i, E) 是 O(n) 而 .get(i) 是 O(1)?是不是因为 n 元素在插入后必须向右移动? 最佳答案 记住大 O 表示法显示问题的数量级而不是最佳情况解决方案..
我在装有 GCC 4.8.2 的 Windows 8.1、Intel i7-3517U 64 位笔记本电脑上测试这个简单的 C++ 代码。 #include using namespace std;
我是一名优秀的程序员,十分优秀!