0
javax.ws.rs.core.UriBuilder
没有正确转义}
:的javax 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
的错误吗?
如果你去throught这个[问题]的答案(https://stackoverflow.com/questions/1547899/which-characters-make-a-url-invalid),你看到的提及'}'因为无论是不明智的字符或禁止。没有明确的共识,但似乎更明智的选择是逃避它。 – Roland
的确更明智,特别是在考虑处理这种URI的程序时。我更愿意对它进行编码,但不编码它是没有错误的,所以实际上你的代码应该能够处理这样的字符未编码 –