【问题标题】:httpclient interacting with ncbo annotator, parameters not being set correctlyhttpclient与ncbo注释器交互,参数设置不正确
【发布时间】: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


    【解决方案1】:

    我能够通过以下方式解决它:

    var method = new HttpPost(annotatorUrl)
    val params = new ArrayList[BasicNameValuePair]()
    
    params.add(new BasicNameValuePair("apikey", apikey))
    params.add(new BasicNameValuePair("textToAnnotate", query))
    etc.
    
    method.setEntity(new UrlEncodedFormEntity(params))
    

    仍然不确定为什么 setParams 不起作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-19
      • 1970-01-01
      • 2012-11-25
      • 2013-01-16
      • 2021-10-13
      • 1970-01-01
      • 1970-01-01
      • 2019-01-07
      相关资源
      最近更新 更多