2017-05-09 1 views
0

J'ai lu le message suivant sur le client http avec vert.x: http://tutorials.jenkov.com/vert.x/http-client.htmlvert.x: Comment envoyer une requête à un serveur distant et obtenir une réponse?

J'ai essayé d'écrire le code suivant:

public class Main { 

    public static void main(String[] args) { 
     Vertx vertx = Vertx.vertx(); 
     vertx.deployVerticle(new VertxHttpClientVerticle()); 

    } 
} 


public class VertxHttpClientVerticle extends AbstractVerticle { 

    @Override 
    public void start() throws Exception { 
     HttpClient httpClient = vertx.createHttpClient(); 
     httpClient.getAbs("http://api.icndb.com/jokes/random?firstName=John&lastName=Doe", 
      new Handler<HttpClientResponse>() { 

      @Override 
      public void handle(HttpClientResponse httpClientResponse) { 

       httpClientResponse.bodyHandler(new Handler<Buffer>() { 
        @Override 
        public void handle(Buffer buffer) { 
         System.out.println("Response (" + buffer.length() + "): "); 
         System.out.println(buffer.getString(0, buffer.length())); 
        } 
       }); 
      } 
     }); 
    } 
} 

Quand je lance le code que je ne reçois rien dans la console imprimais . Est-ce que tu sais pourquoi?

Répondre

1

httpClient.getAbs retourne un objet HttpClientRequest, qui a une méthode end que vous devez appeler pour déclencher la demande.

Si vous voulez faire une simple requête GET, jetez un oeil à la HttpClient.getNow

0

La solution est:

httpClient.getAbs("http://api.icndb.com/jokes/random?firstName=John&lastName=Doe", 
    ..... 
).end() 

La "fin()" fait la demande à envoyer. Dans le message original aucune demande n'a été envoyée.