JAL-1028 utilities package for accessing synchronous web services with apache's HTTP...
authorjprocter <jprocter@compbio.dundee.ac.uk>
Mon, 20 Aug 2012 15:11:37 +0000 (16:11 +0100)
committerjprocter <jprocter@compbio.dundee.ac.uk>
Mon, 20 Aug 2012 15:11:37 +0000 (16:11 +0100)
src/jalview/ws/HttpClientUtils.java [new file with mode: 0644]

diff --git a/src/jalview/ws/HttpClientUtils.java b/src/jalview/ws/HttpClientUtils.java
new file mode 100644 (file)
index 0000000..d018eab
--- /dev/null
@@ -0,0 +1,58 @@
+package jalview.ws;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.List;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.NameValuePair;
+import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.impl.client.DefaultHttpClient;
+
+/**
+ * Helpful procedures for working with services via HTTPClient
+ * @author jimp
+ *
+ */
+public class HttpClientUtils
+{
+  /**
+   * do a minimal HTTP post with URL-Encoded parameters passed in the Query
+   * string
+   * 
+   * @param postUrl
+   * @param vals
+   * @return Reader containing content, if any, or null if no entity returned.
+   * @throws IOException
+   * @throws ClientProtocolException
+   * @throws Exception
+   */
+  public static BufferedReader doHttpUrlPost(String postUrl,
+          List<NameValuePair> vals) throws ClientProtocolException,
+          IOException
+  {
+    HttpClient httpclient = new DefaultHttpClient();
+    HttpPost httppost = new HttpPost(postUrl);
+    UrlEncodedFormEntity ue = new UrlEncodedFormEntity(vals, "UTF-8");
+    httppost.setEntity(ue);
+    HttpResponse response = httpclient.execute(httppost);
+    HttpEntity resEntity = response.getEntity();
+
+    if (resEntity != null)
+    {
+      BufferedReader r = new BufferedReader(new InputStreamReader(
+              resEntity.getContent()));
+      return r;
+    }
+    else
+    {
+      return null;
+    }
+  }
+
+}