import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
+import org.apache.http.client.methods.HttpPatch;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.entity.ByteArrayEntity;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.onap.vfc.nfvo.driver.vnfm.svnfm.constant.CommonConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.RequestMethod;
public class HttpRequestProcessor {
+ private static final Logger logger = LoggerFactory.getLogger(HttpRequestProcessor.class);
private CloseableHttpClient httpClient;
private HttpRequestBase httpRequest;
httpRequest = HttpClientUtils.getHttpRequest(requestMethod);
}
- public String process(String url) throws ClientProtocolException, IOException
+ public HttpResult process(String url) throws ClientProtocolException, IOException
{
httpRequest.setURI(URI.create(url));
HttpResponse response = httpClient.execute(httpRequest);
+ httpRequest.releaseConnection();
+// httpClient.close();
+ HttpResult httpResult = buildHttpResult(response);
+
+ return httpResult;
+ }
+
+ private HttpResult buildHttpResult(HttpResponse response) throws IOException {
HttpEntity resEntity = response.getEntity();
String responseContent = "";
if (resEntity != null) {
responseContent = EntityUtils.toString(resEntity, CommonConstants.UTF_8);
EntityUtils.consume(resEntity);
}
- httpClient.close();
- return responseContent;
+ HttpResult httpResult = new HttpResult();
+ httpResult.setStatusCode(response.getStatusLine().getStatusCode());
+ httpResult.setStatusCause(response.getStatusLine().getReasonPhrase());
+ httpResult.setHeaders(response.getAllHeaders());
+ httpResult.setContent(responseContent);
+
+ return httpResult;
}
public void addHdeader(String key, String value) {
}
public void addPostEntity(String bodyStr) {
- ((HttpPost)httpRequest).setEntity(new StringEntity(bodyStr, CommonConstants.UTF_8));
-
+ if(httpRequest instanceof HttpPost) {
+ ((HttpPost)httpRequest).setEntity(new StringEntity(bodyStr, CommonConstants.UTF_8));
+ } else if(httpRequest instanceof HttpPatch) {
+ ((HttpPatch)httpRequest).setEntity(new StringEntity(bodyStr, CommonConstants.UTF_8));
+ }
+ }
+
+ public void addBytesPostEntity(byte[] byteArray) {
+ ((HttpPost)httpRequest).setEntity(new ByteArrayEntity(byteArray));
}
}