如何使用Scala dispatch获取301重定向中返回的URL?

时间:2013-06-14 15:51:35

标签: scala http-status-code-301 http-redirect scala-dispatch

我正在使用Scala dispatch HTTP库,版本0.10.1。我向一个返回HTTP 301永久重定向的URL发出请求。例如,http://wikipedia.com会返回301,重定向到http://www.wikipedia.org/。如何使用dispatch获取重定向的URL?

按照教程,这就是我所做的。

import dispatch._, Defaults._
val svc = url("http://wikipedia.com")
val r = Http(svc OK as.String)
r()

这会抛出“意外的响应状态:301”异常。据推测,我需要查询重定向URL的r值,或者在其定义中指定除OK之外的其他参数,但我无法弄清楚文档中的操作。

1 个答案:

答案 0 :(得分:11)

配置基础asyncClient以遵循重定向:

val r = Http.configure(_ setFollowRedirects true)(svc OK as.String)

获取重定向的网址:

val svc = url("http://wikipedia.com/")
val r = Http(svc > (x => x))
val res = r()

println(res.getHeader("Location"))