Search in sources :

Example 21 with ParseException

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());
    }
}
Also used : Episode(se.michaelthelin.spotify.model_objects.specification.Episode) IOException(java.io.IOException) ParseException(org.apache.hc.core5.http.ParseException) SpotifyWebApiException(se.michaelthelin.spotify.exceptions.SpotifyWebApiException)

Example 22 with ParseException

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();
    }
}
Also used : StatusLine(org.apache.hc.core5.http.message.StatusLine) ClassicHttpResponse(org.apache.hc.core5.http.ClassicHttpResponse) Header(org.apache.hc.core5.http.Header) HttpEntity(org.apache.hc.core5.http.HttpEntity) HttpGet(org.apache.hc.client5.http.classic.methods.HttpGet) ClassicHttpResponse(org.apache.hc.core5.http.ClassicHttpResponse) HttpResponse(org.apache.hc.core5.http.HttpResponse) IOException(java.io.IOException) ParseException(org.apache.hc.core5.http.ParseException)

Example 23 with ParseException

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;
}
Also used : CloseableHttpClient(org.apache.hc.client5.http.impl.classic.CloseableHttpClient) HttpPost(org.apache.hc.client5.http.classic.methods.HttpPost) HttpEntity(org.apache.hc.core5.http.HttpEntity) JSONObject(org.json.JSONObject) HttpGet(org.apache.hc.client5.http.classic.methods.HttpGet) CloseableHttpResponse(org.apache.hc.client5.http.impl.classic.CloseableHttpResponse) JSONException(org.json.JSONException) IOException(java.io.IOException) ParseException(org.apache.hc.core5.http.ParseException)

Example 24 with ParseException

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;
}
Also used : HttpPost(org.apache.hc.client5.http.classic.methods.HttpPost) BasicNameValuePair(org.apache.hc.core5.http.message.BasicNameValuePair) NameValuePair(org.apache.hc.core5.http.NameValuePair) ArrayList(java.util.ArrayList) UrlEncodedFormEntity(org.apache.hc.client5.http.entity.UrlEncodedFormEntity) IOException(java.io.IOException) BasicNameValuePair(org.apache.hc.core5.http.message.BasicNameValuePair) CloseableHttpResponse(org.apache.hc.client5.http.impl.classic.CloseableHttpResponse) ParseException(org.apache.hc.core5.http.ParseException) HashMap(java.util.HashMap) Map(java.util.Map)

Example 25 with ParseException

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();
        }
    }
}
Also used : CharCodingConfig(org.apache.hc.core5.http.config.CharCodingConfig) BasicCredentialsProvider(org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider) HttpGet(org.apache.hc.client5.http.classic.methods.HttpGet) CharArrayBuffer(org.apache.hc.core5.util.CharArrayBuffer) SystemDefaultDnsResolver(org.apache.hc.client5.http.SystemDefaultDnsResolver) SSLConnectionSocketFactory(org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory) ConnectionSocketFactory(org.apache.hc.client5.http.socket.ConnectionSocketFactory) SSLConnectionSocketFactory(org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory) PlainConnectionSocketFactory(org.apache.hc.client5.http.socket.PlainConnectionSocketFactory) BasicLineParser(org.apache.hc.core5.http.message.BasicLineParser) LineParser(org.apache.hc.core5.http.message.LineParser) HttpHost(org.apache.hc.core5.http.HttpHost) DefaultHttpResponseParser(org.apache.hc.core5.http.impl.io.DefaultHttpResponseParser) CloseableHttpResponse(org.apache.hc.client5.http.impl.classic.CloseableHttpResponse) ManagedHttpClientConnectionFactory(org.apache.hc.client5.http.impl.io.ManagedHttpClientConnectionFactory) ClassicHttpResponse(org.apache.hc.core5.http.ClassicHttpResponse) DnsResolver(org.apache.hc.client5.http.DnsResolver) SystemDefaultDnsResolver(org.apache.hc.client5.http.SystemDefaultDnsResolver) RequestConfig(org.apache.hc.client5.http.config.RequestConfig) CloseableHttpClient(org.apache.hc.client5.http.impl.classic.CloseableHttpClient) SocketConfig(org.apache.hc.core5.http.io.SocketConfig) HttpClientContext(org.apache.hc.client5.http.protocol.HttpClientContext) BasicLineParser(org.apache.hc.core5.http.message.BasicLineParser) SSLContext(javax.net.ssl.SSLContext) BasicCredentialsProvider(org.apache.hc.client5.http.impl.auth.BasicCredentialsProvider) CredentialsProvider(org.apache.hc.client5.http.auth.CredentialsProvider) DefaultHttpRequestWriterFactory(org.apache.hc.core5.http.impl.io.DefaultHttpRequestWriterFactory) PoolingHttpClientConnectionManager(org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager) DefaultHttpResponseParserFactory(org.apache.hc.core5.http.impl.io.DefaultHttpResponseParserFactory) ManagedHttpClientConnection(org.apache.hc.client5.http.io.ManagedHttpClientConnection) HttpRoute(org.apache.hc.client5.http.HttpRoute) CookieStore(org.apache.hc.client5.http.cookie.CookieStore) BasicCookieStore(org.apache.hc.client5.http.cookie.BasicCookieStore) BasicCookieStore(org.apache.hc.client5.http.cookie.BasicCookieStore) ClassicHttpRequest(org.apache.hc.core5.http.ClassicHttpRequest) ParseException(org.apache.hc.core5.http.ParseException) InetAddress(java.net.InetAddress) Http1Config(org.apache.hc.core5.http.config.Http1Config) BasicHeader(org.apache.hc.core5.http.message.BasicHeader)

Aggregations

ParseException (org.apache.hc.core5.http.ParseException)62 IOException (java.io.IOException)54 SpotifyWebApiException (se.michaelthelin.spotify.exceptions.SpotifyWebApiException)33 CloseableHttpResponse (org.apache.hc.client5.http.impl.classic.CloseableHttpResponse)24 HttpPost (org.apache.hc.client5.http.classic.methods.HttpPost)13 HttpGet (org.apache.hc.client5.http.classic.methods.HttpGet)12 CloseableHttpClient (org.apache.hc.client5.http.impl.classic.CloseableHttpClient)11 HttpEntity (org.apache.hc.core5.http.HttpEntity)10 HashMap (java.util.HashMap)8 Map (java.util.Map)6 StringEntity (org.apache.hc.core5.http.io.entity.StringEntity)6 BasicNameValuePair (org.apache.hc.core5.http.message.BasicNameValuePair)6 SuppressFBWarnings (edu.umd.cs.findbugs.annotations.SuppressFBWarnings)5 ArrayList (java.util.ArrayList)5 ClassicHttpResponse (org.apache.hc.core5.http.ClassicHttpResponse)5 Matcher (java.util.regex.Matcher)4 UrlEncodedFormEntity (org.apache.hc.client5.http.entity.UrlEncodedFormEntity)4 AuthorizationCodeCredentials (se.michaelthelin.spotify.model_objects.credentials.AuthorizationCodeCredentials)4 AudioTrack (com.sedmelluq.discord.lavaplayer.track.AudioTrack)3 List (java.util.List)3