use of org.apache.http.client.methods.HttpPatch in project elasticsearch by elastic.
the class RestClientSingleHostTests method performRandomRequest.
private HttpUriRequest performRandomRequest(String method) throws Exception {
String uriAsString = "/" + randomStatusCode(getRandom());
URIBuilder uriBuilder = new URIBuilder(uriAsString);
final Map<String, String> params = new HashMap<>();
boolean hasParams = randomBoolean();
if (hasParams) {
int numParams = randomIntBetween(1, 3);
for (int i = 0; i < numParams; i++) {
String paramKey = "param-" + i;
String paramValue = randomAsciiOfLengthBetween(3, 10);
params.put(paramKey, paramValue);
uriBuilder.addParameter(paramKey, paramValue);
}
}
if (randomBoolean()) {
//randomly add some ignore parameter, which doesn't get sent as part of the request
String ignore = Integer.toString(randomFrom(RestClientTestUtil.getAllErrorStatusCodes()));
if (randomBoolean()) {
ignore += "," + Integer.toString(randomFrom(RestClientTestUtil.getAllErrorStatusCodes()));
}
params.put("ignore", ignore);
}
URI uri = uriBuilder.build();
HttpUriRequest request;
switch(method) {
case "DELETE":
request = new HttpDeleteWithEntity(uri);
break;
case "GET":
request = new HttpGetWithEntity(uri);
break;
case "HEAD":
request = new HttpHead(uri);
break;
case "OPTIONS":
request = new HttpOptions(uri);
break;
case "PATCH":
request = new HttpPatch(uri);
break;
case "POST":
request = new HttpPost(uri);
break;
case "PUT":
request = new HttpPut(uri);
break;
case "TRACE":
request = new HttpTrace(uri);
break;
default:
throw new UnsupportedOperationException("method not supported: " + method);
}
HttpEntity entity = null;
boolean hasBody = request instanceof HttpEntityEnclosingRequest && getRandom().nextBoolean();
if (hasBody) {
entity = new StringEntity(randomAsciiOfLengthBetween(10, 100), ContentType.APPLICATION_JSON);
((HttpEntityEnclosingRequest) request).setEntity(entity);
}
Header[] headers = new Header[0];
final Set<String> uniqueNames = new HashSet<>();
if (randomBoolean()) {
headers = RestClientTestUtil.randomHeaders(getRandom(), "Header");
for (Header header : headers) {
request.addHeader(header);
uniqueNames.add(header.getName());
}
}
for (Header defaultHeader : defaultHeaders) {
// request level headers override default headers
if (uniqueNames.contains(defaultHeader.getName()) == false) {
request.addHeader(defaultHeader);
}
}
try {
if (hasParams == false && hasBody == false && randomBoolean()) {
restClient.performRequest(method, uriAsString, headers);
} else if (hasBody == false && randomBoolean()) {
restClient.performRequest(method, uriAsString, params, headers);
} else {
restClient.performRequest(method, uriAsString, params, entity, headers);
}
} catch (ResponseException e) {
//all good
}
return request;
}
use of org.apache.http.client.methods.HttpPatch in project elasticsearch by elastic.
the class RestClient method createHttpRequest.
private static HttpRequestBase createHttpRequest(String method, URI uri, HttpEntity entity) {
switch(method.toUpperCase(Locale.ROOT)) {
case HttpDeleteWithEntity.METHOD_NAME:
return addRequestBody(new HttpDeleteWithEntity(uri), entity);
case HttpGetWithEntity.METHOD_NAME:
return addRequestBody(new HttpGetWithEntity(uri), entity);
case HttpHead.METHOD_NAME:
return addRequestBody(new HttpHead(uri), entity);
case HttpOptions.METHOD_NAME:
return addRequestBody(new HttpOptions(uri), entity);
case HttpPatch.METHOD_NAME:
return addRequestBody(new HttpPatch(uri), entity);
case HttpPost.METHOD_NAME:
HttpPost httpPost = new HttpPost(uri);
addRequestBody(httpPost, entity);
return httpPost;
case HttpPut.METHOD_NAME:
return addRequestBody(new HttpPut(uri), entity);
case HttpTrace.METHOD_NAME:
return addRequestBody(new HttpTrace(uri), entity);
default:
throw new UnsupportedOperationException("http method not supported: " + method);
}
}
use of org.apache.http.client.methods.HttpPatch in project linuxtools by eclipse.
the class OSIORestPatchRequest method createHttpRequestBase.
@Override
protected HttpRequestBase createHttpRequestBase(String url) {
HttpPatch request = new HttpPatch(url);
request.setHeader(CONTENT_TYPE, APPLICATION_VND_JSON);
return request;
}
use of org.apache.http.client.methods.HttpPatch in project linuxtools by eclipse.
the class OSIORestPatchUpdateTask method addHttpRequestEntities.
@SuppressWarnings("deprecation")
@Override
protected void addHttpRequestEntities(HttpRequestBase request) throws OSIORestException {
super.addHttpRequestEntities(request);
try {
Gson gson = new GsonBuilder().registerTypeAdapter(OldAttributes.class, new TaskAttributeTypeAdapter(getClient().getLocation())).create();
StringEntity requestEntity = new StringEntity(gson.toJson(oldAttributes));
((HttpPatch) request).setEntity(requestEntity);
} catch (UnsupportedEncodingException e) {
Throwables.propagate(new CoreException(// $NON-NLS-1$
new Status(IStatus.ERROR, OSIORestCore.ID_PLUGIN, "Can not build HttpRequest", e)));
}
}
use of org.apache.http.client.methods.HttpPatch in project pwm by pwm-project.
the class PwmHttpClient method executeRequest.
private HttpResponse executeRequest(final PwmHttpClientRequest clientRequest) throws IOException, PwmUnrecoverableException {
final String requestBody = clientRequest.getBody();
final HttpRequestBase httpRequest;
switch(clientRequest.getMethod()) {
case POST:
{
try {
httpRequest = new HttpPost(new URI(clientRequest.getUrl()).toString());
if (requestBody != null && !requestBody.isEmpty()) {
((HttpPost) httpRequest).setEntity(new StringEntity(requestBody, PwmConstants.DEFAULT_CHARSET));
}
} catch (URISyntaxException e) {
throw PwmUnrecoverableException.newException(PwmError.ERROR_UNKNOWN, "malformed url: " + clientRequest.getUrl() + ", error: " + e.getMessage());
}
}
break;
case PUT:
httpRequest = new HttpPut(clientRequest.getUrl());
if (clientRequest.getBody() != null && !clientRequest.getBody().isEmpty()) {
((HttpPut) httpRequest).setEntity(new StringEntity(requestBody, PwmConstants.DEFAULT_CHARSET));
}
break;
case PATCH:
httpRequest = new HttpPatch(clientRequest.getUrl());
if (clientRequest.getBody() != null && !clientRequest.getBody().isEmpty()) {
((HttpPatch) httpRequest).setEntity(new StringEntity(requestBody, PwmConstants.DEFAULT_CHARSET));
}
break;
case GET:
httpRequest = new HttpGet(clientRequest.getUrl());
break;
case DELETE:
httpRequest = new HttpDelete(clientRequest.getUrl());
break;
default:
throw new IllegalStateException("http method not yet implemented");
}
if (clientRequest.getHeaders() != null) {
for (final String key : clientRequest.getHeaders().keySet()) {
final String value = clientRequest.getHeaders().get(key);
httpRequest.addHeader(key, value);
}
}
final HttpClient httpClient = getHttpClient(pwmApplication.getConfig(), pwmHttpClientConfiguration);
return httpClient.execute(httpRequest);
}
Aggregations