import com.twitter.finagle.Http;
import com.twitter.finagle.Service;
import com.twitter.util.Future;
import com.twitter.util.Return;
import com.twitter.util.Throw;
import com.twitter.util.Try;
import com.twitter.finagle.http.Request;
import com.twitter.finagle.http.Response;
public class MyHttpClient {
public static void main(String[] args) {
Service<Request, Response> client = Http.client()
.newService("localhost:8080");
Request request = Request.apply("/api/endpoint");
Future<Response> responseFuture = client.apply(request);
responseFuture.respond(new Function<Try<Response>, scala.runtime.BoxedUnit>() {
public scala.runtime.BoxedUnit apply(Try<Response> responseTry) {
responseTry match {
case Return(response) => System.out.println(response.contentString());
case Throw(ex) => System.out.println("Request failed: " + ex.getMessage());
}
return null;
}
});
}
}
com.twitter.finagle {
serviceTimeout = 5.seconds
retryBudget {
percentCanRetry = 0.5
ttl = 60.seconds
}
http {
compressionLevel = 6
maxRequestSize = 10.megabytes
maxResponseSize = 10.megabytes
}
loadbalancer {
maxEffort = 5
maxPenalty = 10.seconds
}
}