我在scala中寻找一个处理重定向的http客户端。如何在scala中获取Url的内容,处理重定向?
我看到了scala.io.Source示例,但他们没有处理重定向。
答案 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,对于奇怪的操作员来说有点沉重,应该拼出更多的东西,但是我已经使用了一两年,就像很多事情一样。