- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用来自 RestEasy 的 UriBuilder 从字符串 url 创建一个 URI,但我得到了一些意想不到的结果。我正在运行以下代码。
UriBuilder uriBuilder = UriBuilder.fromPath("http://localhost:8190/items?pageNumber={pageNumber}&pageSize={pageSize}");
System.out.println(uriBuilder.build(1, 10));
预期结果:
http://localhost:8190/items?pageNumber=1&pageSize=10
实际结果:
http://localhost:8190/items%3FpageNumber=1&pageSize=10
当使用 UriBuilder.fromUri() 而不是 fromPath() 时,它会在创建 URI 时抛出异常
查询中的非法字符位于索引 39:http://localhost:8190/items?pageNumber={pageNumber}&pageSize={pageSize}
39 处的字符是 {.
我不想解析完整的字符串来逐个创建 URI。
我查看了 RestEasy 代码,它正在编码 '?'使用 org.jboss.resteasy.util.Encode#pathEncoding 中的 pathEncoding 映射使用 org.jboss.resteasy.util.Encode#encode 创建构建器时的字符。
是我的用法不正确还是实现不正确?
最佳答案
自 RestEasy是一个 JAX-RS 实现,来自 Oracle documentation fromPath
的:
Create a new instance representing a relative URI initialized from a URI path.
我认为它不适用于绝对 URL,因此恐怕答案是您的用法不正确。
您将需要像 this 这样的东西(虽然没有测试)
UriBuilder.fromUri("http://localhost:8190/").
path("{a}").
queryParam("pageNumber", "{pageNumber}").
queryParam("pageSize", "{pageSize}").
build("items", 1,10);
关于java - Resteasy UriBuilder 编码不正确?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13708435/
我正在开发一个 asp.net mvc web 应用程序。现在我的操作系统值等于:- 我正在使用以下代码构建一个包含上述值的 url,如下所示:- var query = HttpUtility.Pa
这个问题在这里已经有了答案: java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri (8 个答案) 关闭 5 年前。 所有,我
我在.NET 中发现了 UriBuilder 的奇怪行为 情景 1: Dim uri As New UriBuilder("http://www.test/login.aspx") uri.Que
我正在使用 UriBuilder 的 com.sun.jersey.api.uri.UriBuilderImpl 实现来编码 URL(版本 1.19)。当我的 URL 的查询参数同时包含大括号和空格时
让我们考虑以下代码示例,其中对路径和单个参数进行了编码... 参数名称:“param” 参数值:"foo/bar?aaa=bbb&ccc=ddd"(恰好是一个带有查询参数的url) String
我正在使用 apache URIBuilder 为 Rest 服务的 GET 方法 构建查询字符串。 @RequestMapping(value="/remote") public Retur
我只是想知道为什么建议使用 Uri.Builder 而不是只使用字符串并将参数连接到它? 谁能用一些简短的例子来解释一下? 是不是因为效率(因为字符串是不可变的..等(但是我们可以使用Stringbu
我尝试使用 URIBuilder 使用特定端口和键值对构建 URI。 URIBuilder builder = new URIBuilder(); URI address = build
所以这是我的问题:我想结合一个 URI 和一个字符串。 URI 是(父)文件夹的路径,而字符串表示子文件夹的路径(不要问我为什么要这样做,这两种类型都需要保持这种方式才能使程序的其余部分正常运行) .
我正在尝试使用来自 RestEasy 的 UriBuilder 从字符串 url 创建一个 URI,但我得到了一些意想不到的结果。我正在运行以下代码。 UriBuilder uriBuilder =
我正在尝试使用 Uribuilder 来自: javax.ws.rs.core.UriBuilder; 更新 URI。问题是当我使用 replaceQueryParam 时参数名称被转义。 所以: U
这就是我正在做的(JAX-RS 1.0,Jersey 1.11): import javax.ws.rs.core.UriBuilder; System.out.println(UriBuilder.
javax.ws.rs.core.UriBuilder 未正确转义 }: import javax.ws.rs.core.UriBuilder; public void test() { fi
在我的代码中,我想在 SugarCRM REST API V10 上启动 GET 请求,对于过滤器,我必须向请求添加一些参数 应该是什么: https://domain/rest/v10/Accoun
有一种简洁的方法可以使用 Apache URIBuilder 构建此示例吗? "http://host/path", passing "path2" -> "http://host/path/path
我正在尝试向类似于此的端点发送 GET 请求: http://{hostname}api/search/artifact?name=junit&repos=snapshot,deploy,rele
我尝试生成以下 uri //主机:端口/名称/#/名称/名称 使用 Jersey URI 生成器。问题是 uri 生成器解码哈希字符。 有人知道如何构建给定的 URI 吗? 这就是我所拥有的: fin
如何使用 URIBuilder 构造一个 URI,例如 www.google.com/p1/p2?what&k1=v1&k2=v2?当我使用 Java 的 URIBuilder.setParamete
我尝试构建以下 uri http://localhost:8080/TestService.svc/RunTest 我是这样做的 var uriBuilder = new UriBuilder();
我有这样一个 URI: java.net.URI location = UriBuilder.fromPath("../#/Login").queryParam("token", token).bui
我是一名优秀的程序员,十分优秀!