package com.grendelscan.commons.http.transactions;
import java.io.IOException;
import org.apache.http.Header;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpUriRequest;
import com.grendelscan.commons.http.HttpUtils;
import com.grendelscan.commons.http.factories.HttpRequestFactory;
import com.grendelscan.commons.http.wrappers.HttpRequestWrapper;
public class NonScanHttpTransaction
{
/**
*
*/
private static final long serialVersionUID = 256619227298731217L;
private byte requestBody[];
private byte responseBody[];
private final HttpUriRequest request;
private HttpResponse response;
private final String uri;
public NonScanHttpTransaction(final String method, final String uri)
{
this.uri = uri;
request = (HttpUriRequest) HttpRequestFactory.makeNonScanRequest(method, this.uri, null, null, HttpRequestWrapper.DEFAULT_PROTOCL_VERSION);
}
public void addRequestHeader(final Header header)
{
request.addHeader(header);
}
public void addRequestHeader(final String name, final String value)
{
request.addHeader(name, value);
}
public void execute(final HttpClient client) throws IOException
{
int retries = 0;
while (response == null && retries++ <= Scan.getScanSettings().getMaxRequestRetries())
{
response = client.execute(request);
responseBody = HttpUtils.entityToByteArray(response.getEntity(), 0);
}
}
public byte[] getRequestBody()
{
return requestBody;
}
public HttpResponse getResponse()
{
return response;
}
public byte[] getResponseBody()
{
return responseBody;
}
}