Я пытаюсь взаимодействовать с аннотатором NCBO, задав несколько параметров и выполнив запрос. Однако запрос возвращает ошибку: «Запрещено: для вызова служб REST требуется действительный ключ API. Чтобы получить ключ API, посетите страницу http://bioportal.bioontology.org/account».
Мой код 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 [Дата: Пн, 02 Апр 2012 21:41:13 GMT, Сервер: Apache / 2.2.13 (Red Hat), Длина контента: 401, Варьируется: Accept-Encoding, Соединение: закрыть, Content-Type: text / xml; charset = UTF-8] "
Если я запускаю линию:
return method.getParams().getParameter("apikey").toString()
он возвращает мой правильный ключ API, поэтому кажется, что он установлен правильно.
Есть идеи, что я делаю неправильно?
Спасибо.