8

我正在使用 Scala调度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”异常。大概我需要查询r重定向 URL 的值,或者可能在其定义中指定一些参数OK,但我无法从文档中弄清楚该做什么。

4

2 回答 2

11

配置底层 asyncClient 以遵循重定向:

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

要获取重定向的 URL:

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

println(res.getHeader("Location"))
于 2013-06-14T17:35:56.007 回答
0

调度/重启 v1.2.0:

  val myRequest = url(theUrl)
  
  def myGet = myRequest.GET
  def myGetFollowRedi = myGet.setFollowRedirects(true)

  def myRequestWithHeader = myGetFollowRedi <:< Map(
    "User-Agent" -> "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.",
    "Accept" -> "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.",
    "Accept-Language" -> "de-DE,de;q=0.9,en-US;q=0.7,en;q=0.6,en-GB;q=0.4,nl-NL;q=0.3,nl;q=0.1",
    "Accept-Encoding" -> "gzip, deflate, br",
    "DNT" -> "1",
    "Connection" -> "keep-alive",
    "Upgrade-Insecure-Requests" -> "1",
    "Sec-Fetch-Dest" -> "document",
    "Sec-Fetch-Mode" -> "navigate",
    "Sec-Fetch-Site" -> "none",
    "Sec-Fetch-User" -> "?1"
  )
于 2021-11-29T15:26:19.800 回答