javax.ws.rs.core.UriBuilder未正确转义}:
import javax.ws.rs.core.UriBuilder;
public void test() {
final UriBuilder builder = UriBuilder.fromUri("http://host");
builder.path("dir}one");
l.info(builder.toString());
}将输出http://host/dir}one,而不转义}。
而org.apache.http.client.utils.URIBuilder
org.apache.http.client.utils.URIBuilder;
public void testApache() {
final URIBuilder builder = new URIBuilder(URI.create("http://host"));
builder.setPath("dir}one");
l.info(builder.toString());
}将输出http://hostdir%7Done,不出所料地用%7D转义}。
这是javax.ws.rs.core.UriBuilder中的错误吗
发布于 2017-07-17 23:26:44
根据RFC 3986的说法,字符}不是保留字符,因此不需要进行转义。可以使用%7D对其进行转义,但这不是必需的。
因此,这两个UriBuilder实现都能正确运行。
https://stackoverflow.com/questions/45138844
复制相似问题