From f93b3a9d9caef9193ad59392854141b838c30e30 Mon Sep 17 00:00:00 2001 From: Chris Price Date: Thu, 27 Mar 2014 17:57:12 -0700 Subject: [PATCH] Initial Java implementation of synchronous GET --- .../http/client/SyncHttpClient.java | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/java/com/puppetlabs/http/client/SyncHttpClient.java b/src/java/com/puppetlabs/http/client/SyncHttpClient.java index 8b356e1..106026d 100644 --- a/src/java/com/puppetlabs/http/client/SyncHttpClient.java +++ b/src/java/com/puppetlabs/http/client/SyncHttpClient.java @@ -1,4 +1,38 @@ package com.puppetlabs.http.client; +import com.puppetlabs.http.client.impl.HttpResponse; +import com.puppetlabs.http.client.impl.JavaClient; +import com.puppetlabs.http.client.impl.Promise; +import com.puppetlabs.http.client.impl.RequestOptions; +import org.httpkit.HttpMethod; + +import java.io.IOException; + public class SyncHttpClient { + public static HttpResponse request(RequestOptions options) { + Promise promise = null; + try { + promise = JavaClient.request(options, null); + } catch (IOException e) { + throw new RuntimeException("Error submitting http request", e); + } + HttpResponse response = null; + try { + response = promise.deref(); + } catch (InterruptedException e) { + throw new RuntimeException("Error while waiting for http response", e); + } + if (response.getError() != null) { + throw new RuntimeException("Error in http request", response.getError()); + } + return response; + } + + public static HttpResponse get(String url) { + return get(new RequestOptions(url)); + } + + private static HttpResponse get(RequestOptions requestOptions) { + return request(requestOptions.setMethod(HttpMethod.GET)); + } }