X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fws%2FHttpClientUtils.java;h=8f97226946d39d44c8e2209be1add733cd3ac339;hb=11ddaefa4bdef4cf3fd8fa4436e2a2a9aed1e090;hp=c6d66293117f5db17aa3a6b651cfdd90d1fe975c;hpb=be32c14cd8e48fe0a207cd7030cb9cd46f894678;p=jalview.git diff --git a/src/jalview/ws/HttpClientUtils.java b/src/jalview/ws/HttpClientUtils.java index c6d6629..8f97226 100644 --- a/src/jalview/ws/HttpClientUtils.java +++ b/src/jalview/ws/HttpClientUtils.java @@ -34,6 +34,7 @@ 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.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.mime.HttpMultipartMode; import org.apache.http.entity.mime.MultipartEntity; @@ -67,8 +68,7 @@ public class HttpClientUtils */ public static BufferedReader doHttpUrlPost(String postUrl, List vals, int connectionTimeoutMs, - int readTimeoutMs) throws ClientProtocolException, - IOException + int readTimeoutMs) throws ClientProtocolException, IOException { // todo use HttpClient 4.3 or later and class RequestConfig HttpParams params = new BasicHttpParams(); @@ -76,8 +76,8 @@ public class HttpClientUtils HttpVersion.HTTP_1_1); if (connectionTimeoutMs > 0) { - HttpConnectionParams - .setConnectionTimeout(params, connectionTimeoutMs); + HttpConnectionParams.setConnectionTimeout(params, + connectionTimeoutMs); } if (readTimeoutMs > 0) { @@ -92,8 +92,8 @@ public class HttpClientUtils if (resEntity != null) { - BufferedReader r = new BufferedReader(new InputStreamReader( - resEntity.getContent())); + BufferedReader r = new BufferedReader( + new InputStreamReader(resEntity.getContent())); return r; } else @@ -115,8 +115,8 @@ public class HttpClientUtils mpe.addPart(nvp.getName(), new StringBody(nvp.getValue())); } - FileBody fb = new FileBody(file, mtype != null ? mtype - : "application/octet-stream"); + FileBody fb = new FileBody(file, + mtype != null ? mtype : "application/octet-stream"); mpe.addPart(fparm, fb); UrlEncodedFormEntity ue = new UrlEncodedFormEntity(vals, "UTF-8"); httppost.setEntity(ue); @@ -125,8 +125,8 @@ public class HttpClientUtils if (resEntity != null) { - BufferedReader r = new BufferedReader(new InputStreamReader( - resEntity.getContent())); + BufferedReader r = new BufferedReader( + new InputStreamReader(resEntity.getContent())); return r; } else @@ -137,8 +137,8 @@ public class HttpClientUtils public static BufferedReader doHttpMpartInputstreamPost(String postUrl, List vals, String fparm, String fname, - InputStream is, String mtype) throws ClientProtocolException, - IOException + InputStream is, String mtype) + throws ClientProtocolException, IOException { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(postUrl); @@ -148,8 +148,9 @@ public class HttpClientUtils mpe.addPart(nvp.getName(), new StringBody(nvp.getValue())); } - InputStreamBody fb = (mtype != null) ? new InputStreamBody(is, fname, - mtype) : new InputStreamBody(is, fname); + InputStreamBody fb = (mtype != null) + ? new InputStreamBody(is, fname, mtype) + : new InputStreamBody(is, fname); mpe.addPart(fparm, fb); UrlEncodedFormEntity ue = new UrlEncodedFormEntity(vals, "UTF-8"); httppost.setEntity(ue); @@ -158,8 +159,69 @@ public class HttpClientUtils if (resEntity != null) { - BufferedReader r = new BufferedReader(new InputStreamReader( - resEntity.getContent())); + BufferedReader r = new BufferedReader( + new InputStreamReader(resEntity.getContent())); + return r; + } + else + { + return null; + } + } + + /** + * do an HTTP GET with URL-Encoded parameters passed in the Query string + * + * @param url + * @param vals + * @return Reader containing content, if any, or null if no entity returned. + * @throws IOException + * @throws ClientProtocolException + * @throws Exception + */ + public static BufferedReader doHttpGet(String url, + List vals, int connectionTimeoutMs, + int readTimeoutMs) throws ClientProtocolException, IOException + { + // todo use HttpClient 4.3 or later and class RequestConfig + HttpParams params = new BasicHttpParams(); + params.setParameter(CoreProtocolPNames.PROTOCOL_VERSION, + HttpVersion.HTTP_1_1); + if (connectionTimeoutMs > 0) + { + HttpConnectionParams.setConnectionTimeout(params, + connectionTimeoutMs); + } + if (readTimeoutMs > 0) + { + HttpConnectionParams.setSoTimeout(params, readTimeoutMs); + } + boolean first = true; + for (NameValuePair param : vals) + { + if (first) + { + url += "?"; + } + else + { + url += "&"; + } + url += param.getName(); + url += "="; + url += param.getValue(); + } + HttpClient httpclient = new DefaultHttpClient(params); + HttpGet httpGet = new HttpGet(url); + // UrlEncodedFormEntity ue = new UrlEncodedFormEntity(vals, "UTF-8"); + // httpGet.setEntity(ue); + HttpResponse response = httpclient.execute(httpGet); + HttpEntity resEntity = response.getEntity(); + + if (resEntity != null) + { + BufferedReader r = new BufferedReader( + new InputStreamReader(resEntity.getContent())); return r; } else