Monday, December 24, 2018

A Simple HTTP Client Service Program


import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPatch;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.HttpClientBuilder;

import com.ibm.wsdl.util.IOUtils;

public class HTTPClientService implements IProtocolService {

@SuppressWarnings("unchecked")
@Override
public T send(T t, String uri, String callMethod, Map headers) {
try {
HttpClient client = HttpClientBuilder.create().build();
HttpResponse response = null;
if (callMethod.equals("HTTP_POST")) {
HttpPost post = new HttpPost(uri);
post.setEntity(new StringEntity((String) t));
response = client.execute(post);
} else if (callMethod.equals("HTTP_GET")) {
HttpGet get = new HttpGet(uri);
response = client.execute(get);
} else if (callMethod.equals("HTTP_PATCH")) {
HttpPatch patch = new HttpPatch(uri);
response = client.execute(patch);
} else if (callMethod.equals("HTTP_DELETE")) {
HttpDelete delete = new HttpDelete(uri);
response = client.execute(delete);
}
if (headers != null) {
for (Entry entry : headers.entrySet()) {
response.setHeader(entry.getKey(), entry.getValue());
}
}
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line = IOUtils.getStringFromReader(rd);
System.out.println(line);
return (T) line;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

}