如何在 Spray 中构建 Uri?
How to build a Uri in Spray?
我想使用一些查询参数通过 Spray 发出一个简单的 GET
请求
Get("http://localhost/user?email=abc+a@abc.com")
但是 +
表示 application/x-www-form-urlencoded 内容中的 space 导致对 http://localhost/user?email=abc a@abc.com
的调用(使用 space 而不是加号)。
我可以使用非 Spray java.net.URLEncoder
对 URL 进行编码,然后再将其传递给 GET 请求,但是我每次都这样做似乎很麻烦。
是否有应用查询参数并对它们进行编码的 Spray 方式?
Uri("http://localhost/").withQuery(Map("email"->"abc+a@abc.com"))
是构造 Uri 的好方法,但它也不对参数进行编码...
我用java.net.URLEncoder。我相信这是公认的方法。
如果能自动发生就好了!
实际上 Uri("http://localhost/").withQuery(Map("email"->"abc+a@abc.com"))
可以很好地编码特殊符号。
然而,Uri("http://localhost/").withQuery("email=abc+a@abc.com")
没有。
我想使用一些查询参数通过 Spray 发出一个简单的 GET
请求
Get("http://localhost/user?email=abc+a@abc.com")
但是 +
表示 application/x-www-form-urlencoded 内容中的 space 导致对 http://localhost/user?email=abc a@abc.com
的调用(使用 space 而不是加号)。
我可以使用非 Spray java.net.URLEncoder
对 URL 进行编码,然后再将其传递给 GET 请求,但是我每次都这样做似乎很麻烦。
是否有应用查询参数并对它们进行编码的 Spray 方式?
Uri("http://localhost/").withQuery(Map("email"->"abc+a@abc.com"))
是构造 Uri 的好方法,但它也不对参数进行编码...
我用java.net.URLEncoder。我相信这是公认的方法。 如果能自动发生就好了!
实际上 Uri("http://localhost/").withQuery(Map("email"->"abc+a@abc.com"))
可以很好地编码特殊符号。
然而,Uri("http://localhost/").withQuery("email=abc+a@abc.com")
没有。