2017-11-09 4 views
1

Folks ...RestTemplate Einfach Get Beispiel

die curl line: curl https://api.storify.com/v1/stories/storify

erzeugt eine lange JSON-Antwort von Storify. Mein Versuch, dies zu Spring RestTemplate zu übersetzen sieht wie folgt aus:

@Test 
public void test() { 
    RestTemplate template = new RestTemplate(); 
    URI uri=URI.create("https://api.storify.com/v1/stories/storify"); 
    ResponseEntity<String> response = template.getForEntity(uri,String.class); 
    System.out.println("<<<<<<<<<<"); 
    System.out.println(response.getStatusCode()+" "+response.hasBody()); 
    System.out.println("<<<<<<<<<<"); 

    String text = response.getBody(); 
    System.out.println(response.getBody()); 
    System.out.println("<<<<<<<<<<"); 
} 

Während die resultierende Statuscode 200 ist, und hasBody() ist wahr, die getBody() ist nichts zurückkehrt aber scheinbar eine leere Zeile. Wie kann ich die Ergebnisse der Locke mit RestTemplate replizieren?

Danke, GeePaw

+0

Wenn Sie aus dem String Text drucken und dont rufen getBody ein zweites Mal tut diese Änderung alles? –

Antwort

0

Es ist für mich zu arbeiten, versuchen Sie jedoch können Sie den folgenden Code ausführen, kann

RestTemplate restTemplate = new RestTemplate(); 
String result = restTemplate.getForObject("https://api.storify.com/v1/stories/storify", String.class); 
System.out.println(result); 

auch helfen, wenn Sie hinter Proxy sind (Könnte ein Büro-Netzwerk sein), Dann vergessen Sie nicht, Proxy-Details zu Ihrem RestTemplate hinzuzufügen. Hier ist Schnipsel zum Hinzufügen von "10.1.2.3" als Host für Port-Nr. 80

SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory(); 
InetSocketAddress address = new InetSocketAddress("10.1.2.3", 80); 
Proxy proxy = new Proxy(Proxy.Type.HTTP,address); 
factory.setProxy(proxy); 

restTemplate.setRequestFactory(factory); 
0

Ich habe endlich dieses eine. Danke für die Unterstützung, Piyush, du hast mir das Vertrauen gegeben, dass es wirklich war nur ich.

Das Ergebnis: Die Amöbe war in Ordnung, mein Mikroskop war gesprungen. Die Ausgabe von diesem println ist eine massive einzelne Zeile von JSON. Ich habe es von Eclipse gedruckt. Die Eclipse-Konsole behandelt solche Dinge nicht so wie normale Shells. Ich habe keine Ausgabe, weil Eclipse gab mir keine. Das Laufen in der Shell funktioniert gut bei dieser Variante und wahrscheinlich auch die anderen 15 Varianten, die ich ausprobierte. :)

Danke, GeePaw

Verwandte Themen