在scala中寻找处理重定向的http客户端

时间:2011-12-18 19:59:57

标签: scala httpclient

我在scala中寻找一个处理重定向的http客户端。如何在scala中获取Url的内容,处理重定向?

我看到了scala.io.Source示例,但他们没有处理重定向。

3 个答案:

答案 0 :(得分:5)

如果您不想使用HttpClient之类的东西(除了玩具示例之外可能更好),您可以修改URLConnection

def urlToStream(url: String) = Source.fromInputStream(
  (new java.net.URL(url).openConnection match {
    case connection: java.net.HttpURLConnection => {
      connection.setInstanceFollowRedirects(true)
      connection
    }
    case connection => connection
  }).getInputStream
)

如果协议是HTTP,这将打开重定向。

答案 1 :(得分:4)

您可以将Finagle用于build a client。虽然它非常低级,直接在HttpRequest => Future[HttpResponse]级别工作,因此需要少量工作才能使其处理重定向。

答案 2 :(得分:2)

你看过Dispatch吗? http://dispatch.databinder.net/Dispatch.html

它包装了HttpClient,所以你可以做任何HttpClient可以做的事情,但是以Scala的方式。 IMO,对于奇怪的操作员来说有点沉重,应该拼出更多的东西,但是我已经使用了一两年,就像很多事情一样。