【发布时间】:2012-04-02 21:54:21
【问题描述】:
我正在尝试通过设置一些参数与 NCBO 注释器进行交互,然后执行请求。但是,查询返回错误:“禁止:调用 REST 服务需要有效的 API 密钥。请访问 http://bioportal.bioontology.org/account 获取您的 API 密钥。”
我的scala代码如下:
val annotatorUrl = "http://rest.bioontology.org/obs/annotator"
val client = new DefaultHttpClient()
var method = new HttpPost(annotatorUrl)
val params = new BasicHttpParams
params.setParameter("longestOnly", "true")
params.setParameter("wholeWordOnly", "true")
params.setParameter("filterNumber", "true")
params.setParameter("stopWords", "")
params.setParameter("withDefaultStopWords", "true")
params.setParameter("isTopWordsCaseSensitive", "false")
params.setParameter("mintermSize", "3")
params.setParameter("scored", "true")
params.setParameter("withSynonyms", "true")
params.setParameter("ontologiesToExpand", "")
params.setParameter("ontologiesToKeepInResult", "")
params.setParameter("isVirtualOntologyId", "true")
params.setParameter("semanticTypes", "")
params.setParameter("levelMax", "0")
params.setParameter("mappingTypes", "null")
params.setParameter("textToAnnotate", query)
params.setParameter("format", "xml")
params.setParameter("apikey", "MY_API_KEY")
method.setParams(params)
val response = client.execute(method)
return response.toString()
返回“HTTP/1.1 403 Forbidden [Date: Mon, 02 Apr 2012 21:41:13 GMT, Server: Apache/2.2.13 (Red Hat), Content-Length: 401, Vary: Accept-Encoding,连接:关闭,内容类型:text/xml;charset=UTF-8]"
如果我运行这条线:
return method.getParams().getParameter("apikey").toString()
它返回我正确的 api 密钥,所以它似乎设置正确。
关于我做错了什么有什么想法吗? 谢谢。
【问题讨论】:
标签: apache post httpclient