如何在Spray中构建Uri?

时间:2015-12-08 21:35:46

标签: scala spray

我想通过Spray用一些查询参数做一个简单的GET请求

Get("http://localhost/user?email=abc+a@abc.com")

但是+表示application / x-www-form-urlencoded内容中的空格,导致调用http://localhost/user?email=abc a@abc.com(使用空格而不是加号)。

我可以使用非Spray java.net.URLEncoder对URL进行编码,然后再将其传递给GET请求,但是每次这样做都会像黑客一样。

是否有应用查询参数并对其进行编码的Spray方法?

Uri("http://localhost/").withQuery(Map("email"->"abc+a@abc.com"))是构建Uri的一种很好的方法,但它也没有对params进行编码......

2 个答案:

答案 0 :(得分:3)

实际上Uri("http://localhost/").withQuery(Map("email"->"abc+a@abc.com"))可以很好地编码特殊符号。

但是,Uri("http://localhost/").withQuery("email=abc+a@abc.com")没有。

答案 1 :(得分:0)

我使用java.net.URLEncoder。我相信这是公认的方法。 如果这种情况自动发生会很好!