首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确编码spray.http.Uri.Path?

正确编码spray.http.Uri.Path?
EN

Stack Overflow用户
提问于 2016-05-01 22:25:19
回答 1查看 528关注 0票数 0

我想正确地URL编码:http://a.b.c/apis/POST /foo/bar,其中POST /foo/bar应该被编码为:POST%20%2Ffoo%2Fbar

以下是我尝试过的:

代码语言:javascript
复制
scala> import spray.http._
import spray.http._

scala> val base = Uri("http:/a.b.c")
base: spray.http.Uri = http:///a.b.c

scala> val path = Uri.Path("/apis/GET /foo/bar")
path: spray.http.Uri.Path = /apis/GET%20/foo/bar

scala> base.withPath(path)
res0: spray.http.Uri = http:///apis/GET%20/foo/bar

但是,上面所示的/foo/bar是附加的路径字段,而不是GET%20%2Ffoo%2Fbar

此外,我还试着:

代码语言:javascript
复制
scala> Uri.Path("/apis/" + java.net.URLEncoder.encode("GET /foo/bar", "UTF-8"))
res1: spray.http.Uri.Path = /apis/GET+%2Ffoo%2Fbar

但是,按照https://stackoverflow.com/a/2678602/409976,在path部分(如我所理解),应该将空间编码为%20。此外,当使用+而不是%20时,我访问的web服务返回HTTP-500。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-01 23:42:45

代码语言:javascript
复制
scala> Uri("http:/a.b.c").path / "apis" / "GET /foo/bar"
res0: spray.http.Uri.Path = /a.b.c/apis/GET%20%2Ffoo%2Fbar
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36972681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档