Ich habe angefangen, mit Lucidworks Fusion (2.1.2) zu arbeiten und am bequemsten zu hacken mit Groovy. Randnotiz: Python 'Anfragen' behandelt dies nahtlos, aber ich bin stur und möchte nicht Python verwenden ...Wie kann ich mit groovy eine Verbindung zur Lucidworks Fusion (Solr Wrapper) API herstellen?
Fusion hat vielversprechende API, auf die ich freue mich auf die Arbeit mit Groovy.
Wie verbinde ich mich am besten mit der Fusion authentifizierten API in Fusion mit Groovy (auf eine groovy-ish Art)?
Ich habe mehrere Ansätze ausprobiert (und schließlich ein paar gefunden, als gearbeitet). Ich begrüße das Feedback, warum die grundlegende nicht funktioniert für mich, zusammen mit anderen "einfachen" Lösungen.
Hier ist, was ich versucht:
groovyx.net.http.HTTPBuilder hb = new HTTPBuilder(FUSION_API_BASE)
hb.auth.basic(user, pass)
, die mit einem 401 unauthorized ausfällt (wegen der Codierung glaube ich). HTTPBuilder kam von gradle:
compile 'org.codehaus.groovy.modules.http-builder:http-builder:0.7.1'
ich auch versucht:
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);
und bekam:
{"code":"unauthorized"}
auch versucht:
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"
}
die warf (heute erwartet) IOError: 401. Wenn jemand mehr will Wegen meiner Misserfolge lassen Sie es mich wissen und ich kann Sie wahrscheinlich mit umfangreichen technischen Details langweilen.
Ich beantworte schamlos meine eigene Frage (unten), hoffe aber, dass einige groovige Sensei da draußen mich ein wenig aufklären können.
Also zur Erinnerung: Gibt es eine bessere/groovierere Lösung als das, was ich unten gefunden habe?