import com.twitter.finagle.Service;
import com.twitter.finagle.builder.ClientBuilder;
import com.twitter.finagle.http.Http;
import com.twitter.util.Future;
import com.twitter.util.TimeoutException;
import org.jboss.netty.buffer.ChannelBuffer;
import org.jboss.netty.handler.codec.http.*;
import java.net.InetSocketAddress;
public class FinagleExample {
public static void main(String[] args) {
Service<HttpRequest, HttpResponse> client = ClientBuilder.safeBuild(
ClientBuilder.get()
.codec(Http.get())
.hosts(new InetSocketAddress("localhost", 8080))
);
HttpRequest request = new DefaultHttpRequest(
HttpVersion.HTTP_1_1, HttpMethod.GET, "/");
Future<HttpResponse> future = client.apply(request);
future.addEventListener((rsp) -> {
if (rsp.isDefined()) {
HttpResponse response = rsp.get();
System.out.println("Response: " + response.getContent().toString());
} else {
Throwable throwable = rsp.cause();
if (throwable instanceof TimeoutException) {
System.err.println("Request timed out");
} else {
throwable.printStackTrace();
}
}
});
}
}