下面列出了org.apache.http.client.methods.HttpRequestBase#setURI() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private HttpResponse makeHTTPConnection() throws IOException, NullPointerException {
if (fileURI == null) throw new NullPointerException("No file URI specified");
HttpClient client = HttpClientBuilder.create().build();
HttpRequestBase requestMethod = httpRequestMethod.getRequestMethod();
requestMethod.setURI(fileURI);
BasicHttpContext localContext = new BasicHttpContext();
localContext.setAttribute(HttpClientContext.COOKIE_STORE, getWebDriverCookies(driver.manage().getCookies()));
requestMethod.setHeader("User-Agent", getWebDriverUserAgent());
if (null != urlParameters && (
httpRequestMethod.equals(RequestType.PATCH) ||
httpRequestMethod.equals(RequestType.POST) ||
httpRequestMethod.equals(RequestType.PUT))
) {
((HttpEntityEnclosingRequestBase) requestMethod).setEntity(new UrlEncodedFormEntity(urlParameters));
}
return client.execute(requestMethod, localContext);
}
private HttpResponse makeHTTPConnection() throws IOException, NullPointerException {
if (fileURI == null) throw new NullPointerException("No file URI specified");
HttpClient client = HttpClientBuilder.create().build();
HttpRequestBase requestMethod = httpRequestMethod.getRequestMethod();
requestMethod.setURI(fileURI);
BasicHttpContext localContext = new BasicHttpContext();
if (null != urlParameters && (
httpRequestMethod.equals(RequestType.PATCH) ||
httpRequestMethod.equals(RequestType.POST) ||
httpRequestMethod.equals(RequestType.PUT)
)) {
((HttpEntityEnclosingRequestBase) requestMethod)
.setEntity(new UrlEncodedFormEntity(urlParameters));
}
return client.execute(requestMethod, localContext);
}
private HttpResponse makeHTTPConnection() throws IOException, NullPointerException {
if (fileURI == null) throw new NullPointerException("No file URI specified");
HttpClient client = HttpClientBuilder.create().build();
HttpRequestBase requestMethod = httpRequestMethod.getRequestMethod();
requestMethod.setURI(fileURI);
BasicHttpContext localContext = new BasicHttpContext();
localContext.setAttribute(HttpClientContext.COOKIE_STORE, getWebDriverCookies(driver.manage().getCookies()));
requestMethod.setHeader("User-Agent", getWebDriverUserAgent());
if (null != urlParameters && (
httpRequestMethod.equals(RequestType.PATCH) ||
httpRequestMethod.equals(RequestType.POST) ||
httpRequestMethod.equals(RequestType.PUT))
) {
((HttpEntityEnclosingRequestBase) requestMethod).setEntity(new UrlEncodedFormEntity(urlParameters));
}
return client.execute(requestMethod, localContext);
}
private HttpRequestBase createHttpRequest(HttpServletRequest request) throws IOException {
String method = request.getMethod();
LOGGER.info("Creating " + method + " request to forward");
HttpRequestBase httpRequestBase = HttpPost.METHOD_NAME.equals(method) ? createPostRequest(request) :
HttpGet.METHOD_NAME.equals(method) ? new HttpGet() :
HttpPut.METHOD_NAME.equals(method) ? new HttpPut() :
HttpDelete.METHOD_NAME.equals(method) ? new HttpDelete() : null;
if (httpRequestBase == null) {
throw new UnsupportedHttpMethodException(method);
}
URI uri = URI.create(endpoint + SeleniumSessions.trimSessionPath(request.getPathInfo()));
LOGGER.info("Trimming session id from path, new path: " + uri.toString());
httpRequestBase.setURI(uri);
return httpRequestBase;
}
/**
* Append query parameters
*
* @param verb
* @param params
* @throws Throwable
*/
public static void appendParameters(HttpRequestBase verb, Map<String, String> params) throws Throwable {
if (null != verb
&& null != params && !params.isEmpty()) {
String address = verb.getURI().toString();
boolean isAmpersand = address.contains("?");
StringBuilder url = new StringBuilder(address);
for (Map.Entry<String, String> param : params.entrySet()) {
if (!isAmpersand) {
url.append("?");
isAmpersand = true;
} else {
url.append("&");
}
url.append(URLEncoder.encode(param.getKey(), "UTF-8"));
url.append("=");
url.append(URLEncoder.encode(param.getValue(), "UTF-8"));
}
URI uri = new URI(url.toString());
verb.setURI(uri);
}
}
@Override
protected HttpResponse doExecute() throws Exception {
final HttpMethod method = getMethod();
final HttpRequestBase httpRequest = FACTORY.create(method);
httpRequest.setURI(createRequestURI());
handleBody(httpRequest);
handleHeaders(httpRequest);
handleCookies(httpRequest);
final long start = nanoTime();
final org.apache.http.HttpResponse httpResponse = client.execute(httpRequest);
final long duration = nanoTime() - start;
return ApacheHttpResponseFactory.of(httpResponse, duration);
}
/**
* fix relative uri and update current uri.
*
* @param request http request
*/
private void handleURI(HttpRequestBase request) {
URI requestURI = request.getURI();
if (!requestURI.isAbsolute()) {
request.setURI(URIUtils.resolve(uri, requestURI));
}
uri = request.getURI();
}
private HttpRequestBase createRedirectRequest(final Class<? extends HttpRequestBase> clazz) throws Exception {
String endpoint = getEndpoint().toASCIIString();
endpoint = endpoint.substring(0, endpoint.length() - 1);
final HttpRequestBase httpMethod = clazz.newInstance();
httpMethod.setURI(URI.create(endpoint));
final HttpParams params = new BasicHttpParams();
params.setParameter("http.protocol.handle-redirects", false);
httpMethod.setParams(params);
return httpMethod;
}
@Override
protected HttpResponse execute(final HttpRequestBase request) throws IOException {
if(StringUtils.isNotBlank(request.getURI().getRawQuery())) {
request.setURI(URI.create(String.format("%s%s?%s", uri, request.getURI().getRawPath(), request.getURI().getRawQuery())));
}
else {
request.setURI(URI.create(String.format("%s%s", uri, request.getURI().getRawPath())));
}
return super.execute(request);
}
private HttpUriRequest requestWithQueryString(HttpRequestBase request, Uri.Builder uriBuilder) throws URISyntaxException {
if (params != null) {
for (BasicNameValuePair param : params) {
uriBuilder.appendQueryParameter(param.getName(), param.getValue());
}
}
request.setURI(new URI(uriBuilder.build().toString()));
return request;
}
protected HttpResponse callUri(
final ODataHttpMethod httpMethod, final String uri,
final String additionalHeader, final String additionalHeaderValue,
final String requestBody, final String requestContentType,
final HttpStatusCodes expectedStatusCode) throws Exception {
HttpRequestBase request =
httpMethod == ODataHttpMethod.GET ? new HttpGet() :
httpMethod == ODataHttpMethod.DELETE ? new HttpDelete() :
httpMethod == ODataHttpMethod.POST ? new HttpPost() :
httpMethod == ODataHttpMethod.PUT ? new HttpPut() : new HttpPatch();
request.setURI(URI.create(getEndpoint() + uri));
if (additionalHeader != null) {
request.addHeader(additionalHeader, additionalHeaderValue);
}
if (requestBody != null) {
((HttpEntityEnclosingRequest) request).setEntity(new StringEntity(requestBody));
request.setHeader(HttpHeaders.CONTENT_TYPE, requestContentType);
}
final HttpResponse response = getHttpClient().execute(request);
assertNotNull(response);
assertEquals(expectedStatusCode.getStatusCode(), response.getStatusLine().getStatusCode());
if (expectedStatusCode == HttpStatusCodes.OK) {
assertNotNull(response.getEntity());
assertNotNull(response.getEntity().getContent());
} else if (expectedStatusCode == HttpStatusCodes.CREATED) {
assertNotNull(response.getEntity());
assertNotNull(response.getEntity().getContent());
assertNotNull(response.getFirstHeader(HttpHeaders.LOCATION));
} else if (expectedStatusCode == HttpStatusCodes.NO_CONTENT) {
assertTrue(response.getEntity() == null || response.getEntity().getContent() == null);
}
return response;
}
protected HttpResponse callUri(
final ODataHttpMethod httpMethod, final String uri,
final String additionalHeader, final String additionalHeaderValue,
final String requestBody, final String requestContentType,
final HttpStatusCodes expectedStatusCode) throws Exception {
HttpRequestBase request =
httpMethod == ODataHttpMethod.GET ? new HttpGet() :
httpMethod == ODataHttpMethod.DELETE ? new HttpDelete() :
httpMethod == ODataHttpMethod.POST ? new HttpPost() :
httpMethod == ODataHttpMethod.PUT ? new HttpPut() : new HttpPatch();
request.setURI(URI.create(getEndpoint() + uri));
if (additionalHeader != null) {
request.addHeader(additionalHeader, additionalHeaderValue);
}
if (requestBody != null) {
((HttpEntityEnclosingRequest) request).setEntity(new StringEntity(requestBody));
request.setHeader(HttpHeaders.CONTENT_TYPE, requestContentType);
}
final HttpResponse response = getHttpClient().execute(request);
assertNotNull(response);
assertEquals(expectedStatusCode.getStatusCode(), response.getStatusLine().getStatusCode());
if (expectedStatusCode == HttpStatusCodes.OK) {
assertNotNull(response.getEntity());
assertNotNull(response.getEntity().getContent());
} else if (expectedStatusCode == HttpStatusCodes.CREATED) {
assertNotNull(response.getEntity());
assertNotNull(response.getEntity().getContent());
assertNotNull(response.getFirstHeader(HttpHeaders.LOCATION));
} else if (expectedStatusCode == HttpStatusCodes.NO_CONTENT) {
assertTrue(response.getEntity() == null || response.getEntity().getContent() == null);
}
return response;
}
private HttpRequestBase createRedirectRequest(final Class<? extends HttpRequestBase> clazz) throws Exception {
String endpoint = getEndpoint().toASCIIString();
endpoint = endpoint.substring(0, endpoint.length() - 1);
final HttpRequestBase httpMethod = clazz.newInstance();
httpMethod.setURI(URI.create(endpoint));
final HttpParams params = new BasicHttpParams();
params.setParameter("http.protocol.handle-redirects", false);
httpMethod.setParams(params);
return httpMethod;
}
/**
* Append the given path to the existing base
*
* @param uri
* @param path
* @return
*/
public static void appendPath(HttpRequestBase verb, List<String> path) throws Throwable {
if (null != verb) {
String address = verb.getURI().toString();
address = RequestHelper.appendPath(address, path);
URI uri = new URI(address);
verb.setURI(uri);
}
}
/**
* Prepend the given base to the given HTTP element.
* @param verb
* @param base
*/
public static void addBaseUrl(HttpRequestBase verb, String base) throws Throwable {
if (null != verb) {
String address = verb.getURI().toString();
address = appendPath(base, address);
URI uri = new URI(address);
verb.setURI(uri);
}
}
protected HttpResponse callUri(
final ODataHttpMethod httpMethod, final String uri,
final String additionalHeader, final String additionalHeaderValue,
final String requestBody, final String requestContentType,
final HttpStatusCodes expectedStatusCode) throws Exception {
HttpRequestBase request =
httpMethod == ODataHttpMethod.GET ? new HttpGet() :
httpMethod == ODataHttpMethod.DELETE ? new HttpDelete() :
httpMethod == ODataHttpMethod.POST ? new HttpPost() :
httpMethod == ODataHttpMethod.PUT ? new HttpPut() : new HttpPatch();
request.setURI(URI.create(getEndpoint() + uri));
if (additionalHeader != null) {
request.addHeader(additionalHeader, additionalHeaderValue);
}
if (requestBody != null) {
((HttpEntityEnclosingRequest) request).setEntity(new StringEntity(requestBody));
request.setHeader(HttpHeaders.CONTENT_TYPE, requestContentType);
}
final HttpResponse response = getHttpClient().execute(request);
assertNotNull(response);
assertEquals(expectedStatusCode.getStatusCode(), response.getStatusLine().getStatusCode());
if (expectedStatusCode == HttpStatusCodes.OK) {
assertNotNull(response.getEntity());
assertNotNull(response.getEntity().getContent());
} else if (expectedStatusCode == HttpStatusCodes.CREATED) {
assertNotNull(response.getEntity());
assertNotNull(response.getEntity().getContent());
assertNotNull(response.getFirstHeader(HttpHeaders.LOCATION));
} else if (expectedStatusCode == HttpStatusCodes.NO_CONTENT) {
assertTrue(response.getEntity() == null || response.getEntity().getContent() == null);
}
return response;
}
public CloseableHttpResponse execute(HttpRequestBase request) throws IOException {
request.setURI(request.getURI().normalize());
return client.execute(request);
}
public CloseableHttpResponse execute(HttpRequestBase request, HttpContext context) throws IOException {
request.setURI(request.getURI().normalize());
return client.execute(request, context);
}
public static void execAsyncGet(String baseUrl, List<BasicNameValuePair> urlParams, FutureCallback callback)
throws Exception {
if (baseUrl == null) {
logger.warn("we don't have base url, check config");
throw new ConfigException("missing base url");
}
HttpRequestBase httpMethod = new HttpGet(baseUrl);
CloseableHttpAsyncClient hc = null;
try {
hc = HttpClientFactory.getInstance().getHttpAsyncClientPool()
.getAsyncHttpClient();
hc.start();
HttpClientContext localContext = HttpClientContext.create();
BasicCookieStore cookieStore = new BasicCookieStore();
if (null != urlParams) {
String getUrl = EntityUtils.toString(new UrlEncodedFormEntity(urlParams));
httpMethod.setURI(new URI(httpMethod.getURI().toString() + "?" + getUrl));
}
localContext.setAttribute(HttpClientContext.COOKIE_STORE, cookieStore);
hc.execute(httpMethod, localContext, callback);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* Adds a query string to a given method URI.
*
* @param query
* - a query string to be added
* @param method
* - a method to be updated
*/
private void addQuery(String query, HttpRequestBase method) {
if (!StringUtils.isEmpty(method.getURI().getQuery())) {
method.setURI(changeQueryString(method.getURI(), method.getURI().getRawQuery() + "&" + query));
} else {
method.setURI(changeQueryString(method.getURI(), query));
}
}