use of org.apache.hc.core5.http.ParseException in project spotify-web-api-java by spotify-web-api-java.
the class GetEpisodeExample method getEpisode_Sync.
public static void getEpisode_Sync() {
try {
final Episode episode = getEpisodeRequest.execute();
System.out.println("Name: " + episode.getName());
} catch (IOException | SpotifyWebApiException | ParseException e) {
System.out.println("Error: " + e.getMessage());
}
}
use of org.apache.hc.core5.http.ParseException in project californium by eclipse.
the class ExampleProxy2HttpClient method request.
private static void request(HttpClient client, String uri) {
try {
System.out.println("=== " + uri + " ===");
HttpGet request = new HttpGet(uri);
HttpResponse response = client.execute(request);
System.out.println(new StatusLine(response));
Header[] headers = response.getHeaders();
for (Header header : headers) {
System.out.println(header.getName() + ": " + header.getValue());
}
if (response instanceof ClassicHttpResponse) {
HttpEntity entity = ((ClassicHttpResponse) response).getEntity();
System.out.println(EntityUtils.toString(entity));
}
} catch (IOException e) {
e.printStackTrace();
} catch (ParseException e) {
e.printStackTrace();
}
}
use of org.apache.hc.core5.http.ParseException in project jahia by Jahia.
the class ForgeHelper method createForgeModule.
/**
* Manage Private App Store
*/
String createForgeModule(ModuleReleaseInfo releaseInfo, File jar) throws IOException {
String moduleUrl = null;
final String url = releaseInfo.getForgeUrl();
CloseableHttpClient client = httpClientService.getHttpClient(url);
// Get token from Private App Store home page
HttpGet getMethod = new HttpGet(url + "/home.html");
getMethod.addHeader("Authorization", "Basic " + Base64.encode((releaseInfo.getUsername() + ":" + releaseInfo.getPassword()).getBytes()));
String token = getToken(client, getMethod);
HttpEntity entity = MultipartEntityBuilder.create().addTextBody("form-token", token).addBinaryBody("file", jar).build();
// send module
HttpPost postMethod = new HttpPost(url + "/contents/modules-repository.createModuleFromJar.do");
postMethod.setConfig(httpClientService.getRequestConfigBuilder(client).setResponseTimeout(Timeout.DISABLED).build());
postMethod.addHeader("Authorization", "Basic " + Base64.encode((releaseInfo.getUsername() + ":" + releaseInfo.getPassword()).getBytes()));
postMethod.addHeader("accept", "application/json");
postMethod.setEntity(entity);
String result = null;
try (CloseableHttpResponse response = client.execute(postMethod)) {
if (response.getCode() == SC_OK) {
result = EntityUtils.toString(response.getEntity());
} else {
logger.warn("Connection to URL: {} failed with status {}", url, response.getCode());
}
} catch (IOException | ParseException e) {
logger.error("Unable to get the content of the URL: {}. Cause: {}", url, e.getMessage(), e);
}
if (StringUtils.isNotEmpty(result)) {
try {
JSONObject json = new JSONObject(result);
if (!json.isNull("moduleAbsoluteUrl")) {
moduleUrl = json.getString("moduleAbsoluteUrl");
} else if (!json.isNull("error")) {
throw new IOException(json.getString("error"));
} else {
logger.warn("Cannot find 'moduleAbsoluteUrl' entry in the create module actin response: {}", result);
throw new IOException("unknown");
}
} catch (JSONException e) {
logger.error("Unable to parse the response of the module creation action. Cause: " + e.getMessage(), e);
}
}
return moduleUrl;
}
use of org.apache.hc.core5.http.ParseException in project jahia by Jahia.
the class HttpClientService method executePost.
/**
* Executes a request with POST method to the specified URL and reads the response content as a string.
*
* @param url a URL to connect to
* @param parameters the request parameter to submit; <code>null</code> if no parameters are passed
* @param headers request headers to be set for connection; <code>null</code> if no additional headers needs to be set
* @return the string representation of the URL connection response
* @throws {@link IllegalArgumentException} in case of a malformed URL
*/
public String executePost(String url, Map<String, String> parameters, Map<String, String> headers) throws IllegalArgumentException {
if (StringUtils.isEmpty(url)) {
throw new IllegalArgumentException(URL_NOT_PROVIDED);
}
if (logger.isDebugEnabled()) {
logger.debug("Asked to get content from the URL {} using POST method with parameters {}", url, parameters);
}
String content = null;
HttpPost httpMethod = new HttpPost(url);
List<NameValuePair> nvps = new ArrayList<>();
if (parameters != null && !parameters.isEmpty()) {
for (Map.Entry<String, String> param : parameters.entrySet()) {
nvps.add(new BasicNameValuePair(param.getKey(), param.getValue()));
}
}
if (headers != null && !headers.isEmpty()) {
for (Map.Entry<String, String> header : headers.entrySet()) {
httpMethod.addHeader(header.getKey(), header.getValue());
}
}
httpMethod.setEntity(new UrlEncodedFormEntity(nvps));
try (CloseableHttpResponse response = getHttpClient(url).execute(httpMethod)) {
if (response.getCode() == SC_OK) {
content = EntityUtils.toString(response.getEntity());
} else {
logger.warn("Connection to URL: {} failed with status {}", url, response.getCode());
}
} catch (IOException | ParseException e) {
logger.error("Unable to get the content of the URL: {}. Cause: {}", url, e.getMessage(), e);
}
logContent(content);
return content;
}
use of org.apache.hc.core5.http.ParseException in project mercury by yellow013.
the class ClientConfiguration method main.
public static final void main(final String[] args) throws Exception {
// Use custom message parser / writer to customize the way HTTP
// messages are parsed from and written out to the data stream.
final HttpMessageParserFactory<ClassicHttpResponse> responseParserFactory = new DefaultHttpResponseParserFactory() {
@Override
public HttpMessageParser<ClassicHttpResponse> create(final Http1Config h1Config) {
final LineParser lineParser = new BasicLineParser() {
@Override
public Header parseHeader(final CharArrayBuffer buffer) {
try {
return super.parseHeader(buffer);
} catch (final ParseException ex) {
return new BasicHeader(buffer.toString(), null);
}
}
};
return new DefaultHttpResponseParser(lineParser, DefaultClassicHttpResponseFactory.INSTANCE, h1Config);
}
};
final HttpMessageWriterFactory<ClassicHttpRequest> requestWriterFactory = new DefaultHttpRequestWriterFactory();
// Create HTTP/1.1 protocol configuration
final Http1Config h1Config = Http1Config.custom().setMaxHeaderCount(200).setMaxLineLength(2000).build();
// Create connection configuration
final CharCodingConfig connectionConfig = CharCodingConfig.custom().setMalformedInputAction(CodingErrorAction.IGNORE).setUnmappableInputAction(CodingErrorAction.IGNORE).setCharset(StandardCharsets.UTF_8).build();
// Use a custom connection factory to customize the process of
// initialization of outgoing HTTP connections. Beside standard connection
// configuration parameters HTTP connection factory can define message
// parser / writer routines to be employed by individual connections.
@SuppressWarnings("unused") final HttpConnectionFactory<ManagedHttpClientConnection> connFactory = new ManagedHttpClientConnectionFactory(h1Config, connectionConfig, requestWriterFactory, responseParserFactory);
// Client HTTP connection objects when fully initialized can be bound to
// an arbitrary network socket. The process of network socket initialization,
// its connection to a remote address and binding to a local one is controlled
// by a connection socket factory.
// SSL context for secure connections can be created either based on
// system or application specific properties.
final SSLContext sslcontext = SSLContexts.createSystemDefault();
// Create a registry of custom connection socket factories for supported
// protocol schemes.
final Registry<ConnectionSocketFactory> socketFactoryRegistry = RegistryBuilder.<ConnectionSocketFactory>create().register("http", PlainConnectionSocketFactory.INSTANCE).register("https", new SSLConnectionSocketFactory(sslcontext)).build();
// Use custom DNS resolver to override the system DNS resolution.
final DnsResolver dnsResolver = new SystemDefaultDnsResolver() {
@Override
public InetAddress[] resolve(final String host) throws UnknownHostException {
if (host.equalsIgnoreCase("myhost")) {
return new InetAddress[] { InetAddress.getByAddress(new byte[] { 127, 0, 0, 1 }) };
} else {
return super.resolve(host);
}
}
};
// Create a connection manager with custom configuration.
final PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager(socketFactoryRegistry, PoolConcurrencyPolicy.STRICT, PoolReusePolicy.LIFO, TimeValue.ofMinutes(5), null, dnsResolver, null);
// Create socket configuration
final SocketConfig socketConfig = SocketConfig.custom().setTcpNoDelay(true).build();
// Configure the connection manager to use socket configuration either
// by default or for a specific host.
connManager.setDefaultSocketConfig(socketConfig);
// Validate connections after 1 sec of inactivity
connManager.setValidateAfterInactivity(TimeValue.ofSeconds(10));
// Configure total max or per route limits for persistent connections
// that can be kept in the pool or leased by the connection manager.
connManager.setMaxTotal(100);
connManager.setDefaultMaxPerRoute(10);
connManager.setMaxPerRoute(new HttpRoute(new HttpHost("somehost", 80)), 20);
// Use custom cookie store if necessary.
final CookieStore cookieStore = new BasicCookieStore();
// Use custom credentials provider if necessary.
final CredentialsProvider credentialsProvider = new BasicCredentialsProvider();
// Create global request configuration
final RequestConfig defaultRequestConfig = RequestConfig.custom().setCookieSpec(StandardCookieSpec.STRICT).setExpectContinueEnabled(true).setTargetPreferredAuthSchemes(Arrays.asList(StandardAuthScheme.NTLM, StandardAuthScheme.DIGEST)).setProxyPreferredAuthSchemes(Collections.singletonList(StandardAuthScheme.BASIC)).build();
try (final CloseableHttpClient httpclient = HttpClients.custom().setConnectionManager(connManager).setDefaultCookieStore(cookieStore).setDefaultCredentialsProvider(credentialsProvider).setProxy(new HttpHost("myproxy", 8080)).setDefaultRequestConfig(defaultRequestConfig).build()) {
final HttpGet httpget = new HttpGet("http://httpbin.org/get");
// Request configuration can be overridden at the request level.
// They will take precedence over the one set at the client level.
final RequestConfig requestConfig = RequestConfig.copy(defaultRequestConfig).setConnectionRequestTimeout(Timeout.ofSeconds(5)).setConnectTimeout(Timeout.ofSeconds(5)).setProxy(new HttpHost("myotherproxy", 8080)).build();
httpget.setConfig(requestConfig);
// Execution context can be customized locally.
final HttpClientContext context = HttpClientContext.create();
// Contextual attributes set the local context level will take
// precedence over those set at the client level.
context.setCookieStore(cookieStore);
context.setCredentialsProvider(credentialsProvider);
System.out.println("Executing request " + httpget.getMethod() + " " + httpget.getUri());
try (final CloseableHttpResponse response = httpclient.execute(httpget, context)) {
System.out.println("----------------------------------------");
System.out.println(response.getCode() + " " + response.getReasonPhrase());
System.out.println(EntityUtils.toString(response.getEntity()));
// Once the request has been executed the local context can
// be used to examine updated state and various objects affected
// by the request execution.
// Last executed request
context.getRequest();
// Execution route
context.getHttpRoute();
// Auth exchanges
context.getAuthExchanges();
// Cookie origin
context.getCookieOrigin();
// Cookie spec used
context.getCookieSpec();
// User security token
context.getUserToken();
}
}
}
Aggregations