我已經開始使用Lucidworks Fusion(2.1.2),並且使用Groovy進行了最爲舒適的黑客攻擊。附註:python'requests'處理這個無縫,但我固執,不想使用python ...如何使用groovy連接到Lucidworks Fusion(solr wrapper)API?
融合有前途API,我期待着與Groovy合作。
如何最好地連接到融合使用Groovy的Fusion身份驗證的API(以groovy-ish的方式)?
我嘗試了幾種方法(最後發現了一些比工作)。我歡迎反饋意見,爲什麼基本RESTClient不適合我,以及其他「簡單」解決方案。
這裏是我的嘗試:
groovyx.net.http.HTTPBuilder hb = new HTTPBuilder(FUSION_API_BASE)
hb.auth.basic(user, pass)
失敗,出現一個401未授權的(因爲編碼的,我相信)。
compile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1'
我也試過:HTTPBuilder從gradle這個來
HttpPost httpPost = new HttpPost(url);
List <NameValuePair> nvps = new ArrayList <NameValuePair>();
nvps.add(new BasicNameValuePair("username", "sean"));
nvps.add(new BasicNameValuePair("password", "mypass"));
httpPost.setEntity(new UrlEncodedFormEntity(nvps));
CloseableHttpResponse response2 = httpclient.execute(httpPost);
,並得到:
{"code":"unauthorized"}
也試過:
String path = '/api/apollo/introspect'
URL url = new URL('http', 'corp', 8764, path)
try {
def foo = url.getContent()
log.info "Foo: $foo"
} catch (IOException ioe){
log.warn "IO ERR: $ioe"
}
它扔了(一個目前預計) IOError:401.如果有人想要更多對我的失敗讓我知道,我可能會給你帶來大量的技術細節。
我很無恥地回答我自己的問題(下面),但希望在那裏的一些時髦的意識可以啓發我一點。
所以回顧一下:有沒有比我在下面發現的更好的/更加優秀的解決方案?