以下代码涉及play框架中的http请求。我在代码中包含错误......
def requestWebservice(drug: String) : String = {
val drugEntry = "search" -> drug
var a = 100
val request = ws.url(apiUrl).withQueryString(apiKey, drugEntry,
apiLimit, apiSkip).get()
val jsonresults = Await.result(request, 10 seconds).json
val countEntries: Int = (jsonresults \ "meta" \ "results" \
"total").as[Int]
//error "not found: type >"
while (countEntries: Int > a) {
// type mismatch; found : Unit, required: String (countEntries)
skip = skip + 100;
request;
jsonresults;
a = a + 100;
}
}
我是scala和play框架的新手,我有一个问题对于有经验的人来说可能是微不足道的。我正在向Web服务器发送一个http请求,一次返回100个结果。我试图指出一个给出结果总数的数字,这样如果总数超过100,我可以用while循环重复请求.jsonresults的结构如下
"meta": {
"disclaimer": "",
"terms": "",
"license": "",
"last_updated": "",
"results": {
"skip": 0,
"limit": 100,
"total": 1742
}
我知道单位意味着什么都没有回来,可能我没有正确地指向正确的领域,但我怎么能指向总数呢?为什么我会收到第一个错误,scala没有识别运算符">"?我会感激一些帮助。
答案 0 :(得分:0)
您需要删除while中的: Int
,因为countEntries
的类型会自动推断 - 这意味着编译器会自动确定countEntries
的类型是{{ 1}}:
Int
此外,如果您想查看Scala中的官方while (countEntries > a) {
...
}
规范,那么它是here。如果需要,可以保留类型规范,只需确保将其包装在大括号之间:
while