我正在使用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
之外的其他参数,但我无法弄清楚文档中的操作。
答案 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"))