Scala中使用HTTP访问地址可以使用以下简便方式
1.声明对象
abstract class OptionalParam
case class Id(id : String) extends OptionalParam
case class UserId(user_id : Long) extends OptionalParam
case class ScreenName(screen_name : String) extends OptionalParam
case class Since(since_id : Long) extends OptionalParam
case class Max(max_id : Long) extends OptionalParam
case class Count(count : Int) extends OptionalParam
case class Page(page : Int) extends OptionalParam
case class InReplyToStatusId(status_id : Long) extends OptionalParam
2.传递请求
def userTimeline(options : OptionalParam*) : List[Status] =
{
val url = "http://twitter.com/statuses/user_timeline"
var urlId = ".xml"
val optionsStr = new StringBuffer("?")
for (option <- options)
{
option match
{
case Id(id) =>
urlId = "/" + id.toString() + ".xml"
case UserId(user_id) =>
optionsStr.append("user_id=" + user_id.toString() + "&")
case Since(since_id) =>
optionsStr.append("since_id=" + since_id.toString() + "&")
case Max(max_id) =>
optionsStr.append("max_id=" + max_id.toString() + "&")
case Count(count) =>
optionsStr.append("count=" + count.toString() + "&")
case Page(page) =>
optionsStr.append("page=" + page.toString() + "&")
}
}
val (statusCode, statusBody) =
Scitter.execute(url + urlId + optionsStr.toString(), username, password)
}
这样话,可以简单统一化参数请求。