Yes Yossi I think I need to do that, Thanks a lot for your suggestions and
support.

Regards Somshekar

On Thu, Sep 5, 2019, 8:48 PM <yo...@yossi.at> wrote:

> Your class should also be in the classpath. Add
> ";path/ClientCustomSSL.class" to your class path.
> (This is basic Java stuff, unrelated to HC. Maybe you should do some Java
> tutorial first, or if possible start using an IDE, which simplifies a lot
> of these issues.)
>
> -----Original Message-----
> From: Somshekar C Kadam <somkada...@gmail.com>
> Sent: Thursday, 5 September 2019 16:51
> To: HttpClient User Discussion <httpclient-users@hc.apache.org>
> Subject: Re: apache httpclient
>
> Hi Yossi,
> tried the same
>
> somshekar@celsys041:~$ java -classpath
>
> /home/somshekar/akshay/java-jvms/httpcomponents-client-4.5.9/lib/httpclient-4.5.9.jar:/home/somshekar/akshay/java-jvms/httpcomponents-client-4.5.9/lib/httpcore-4.4.11.jar:/home/somshekar/akshay/java-jvms/httpcomponents-client-4.5.9/lib/httpclient-osgi-4.5.9.jar:/home/somshekar/akshay/java-jvms/httpcomponents-client-4.5.9/lib/httpclient-cache-4.5.9.jar
> org.apache.http.examples.client.ClientCustomSSL
> Error: Could not find or load main class
> org.apache.http.examples.client.ClientCustomSSL
>
> same even with sudo, not sure why am I missing naything else Sorry for
> many mails on this
>
> thanks in advance
>
> Regards
> Somshekar C Kadam
> 9036660538
>
>
> On Thu, Sep 5, 2019 at 6:46 PM <yo...@yossi.at> wrote:
>
> > You need to specify the full package name of the main class (in your
> > case org.apache.http.examples.client.ClientCustomSSL).
> >
> > -----Original Message-----
> > From: Somshekar C Kadam <somkada...@gmail.com>
> > Sent: Thursday, 5 September 2019 16:14
> > To: HttpClient User Discussion <httpclient-users@hc.apache.org>
> > Subject: Re: apache httpclient
> >
> > Hi Yossi,
> > Thanks you are right, I did put all jar files and compiled it, now it
> > compiles successfully able to create class file.
> >
> > compile command
> >
> > javac -classpath
> >
> > /home/somshekar/akshay/java-jvms/httpcomponents-client-4.5.9/lib/httpc
> > lient-4.5.9.jar:/home/somshekar/akshay/java-jvms/httpcomponents-client
> > -4.5.9/lib/httpcore-4.4.11.jar:/home/somshekar/akshay/java-jvms/httpco
> > mponents-client-4.5.9/lib/httpclient-osgi-4.5.9.jar:/home/somshekar/ak
> > shay/java-jvms/httpcomponents-client-4.5.9/lib/httpclient-cache-4.5.9.
> > jar
> > ClientCustomSSL.java
> >
> >
> > somshekar@celsys041:~$ file ClientCustomSSL.class
> > ClientCustomSSL.class: compiled Java class data, version 52.0 (Java
> > 1.8)
> >
> >
> > when I try to run it, it gives below error, do I have to specify the
> > classpath at runtime also
> >
> > somshekar@celsys041:~$ sudo java -classpath
> > /home/somshekar/akshay/java-jvms/httpcomponents-client-4.5.9/lib/httpc
> > lient-4.5.9.jar:/home/somshekar/akshay/java-jvms/httpcomponents-client
> > -4.5.9/lib/httpcore-4.4.11.jar:/home/somshekar/akshay/java-jvms/httpco
> > mponents-client-4.5.9/lib/httpclient-osgi-4.5.9.jar:/home/somshekar/ak
> > shay/java-jvms/httpcomponents-client-4.5.9/lib/httpclient-cache-4.5.9.
> > jar
> > ClientCustomSSL
> > Error: Could not find or load main class ClientCustomSSL
> >
> > thanks in advance
> > Regards
> > Somshekar C Kadam
> > 9036660538
> >
> >
> > On Thu, Sep 5, 2019 at 6:33 PM <yo...@yossi.at> wrote:
> >
> > > It seems that you are only putting httpclient-4.5.9.jar in your
> > > classpath, but it has dependencies on other JARs itself. Most
> > > importantly, it depends on HttpCore, part of the same project. You
> > > can see the dependencies, and their own dependencies, recursively,
> > > at
> > > https://mvnrepository.com/artifact/org.apache.httpcomponents/httpcli
> > > en
> > > t/4.5.9
> > > .
> > > Collecting all the transitive dependencies for Java projects
> > > manually can become quite time-consuming. You can definitely do it
> > > for this test, but I recommend learning how to use Maven.
> > >
> > > -----Original Message-----
> > > From: Somshekar C Kadam <somkada...@gmail.com>
> > > Sent: Thursday, 5 September 2019 15:40
> > > To: HttpClient User Discussion <httpclient-users@hc.apache.org>
> > > Subject: Re: apache httpclient
> > >
> > > Hi Yossi,
> > >
> > > Thanks for correcting me, I used example from 4.5.9, let me know if
> > > I am setting proper jar file or need to give any other or missing any
> step.
> > >
> > > source code
> > > =====================
> > > package org.apache.http.examples.client;
> > >
> > > import java.io.File;
> > >
> > > import javax.net.ssl.SSLContext;
> > >
> > > import org.apache.http.HttpEntity;
> > > import org.apache.http.client.methods.CloseableHttpResponse;
> > > import org.apache.http.client.methods.HttpGet;
> > > import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
> > > import org.apache.http.conn.ssl.TrustSelfSignedStrategy;
> > > import org.apache.http.impl.client.CloseableHttpClient;
> > > import org.apache.http.impl.client.HttpClients;
> > > import org.apache.http.ssl.SSLContexts; import
> > > org.apache.http.util.EntityUtils;
> > >
> > > /**
> > >  * This example demonstrates how to create secure connections with a
> > > custom SSL
> > >  * context.
> > >  */
> > > public class ClientCustomSSL {
> > >
> > >     public final static void main(String[] args) throws Exception {
> > >         // Trust own CA and all self-signed certs
> > >         SSLContext sslcontext = SSLContexts.custom()
> > >                 .loadTrustMaterial(new File("my.keystore"),
> > > "nopassword".toCharArray(),
> > >                         new TrustSelfSignedStrategy())
> > >                 .build();
> > >         // Allow TLSv1 protocol only
> > >         SSLConnectionSocketFactory sslsf = new
> > SSLConnectionSocketFactory(
> > >                 sslcontext,
> > >                 new String[] { "TLSv1" },
> > >                 null,
> > >
>  SSLConnectionSocketFactory.getDefaultHostnameVerifier());
> > >         CloseableHttpClient httpclient = HttpClients.custom()
> > >                 .setSSLSocketFactory(sslsf)
> > >                 .build();
> > >         try {
> > >
> > >             HttpGet httpget = new HttpGet("https://httpbin.org/";);
> > >
> > >             System.out.println("Executing request " +
> > > httpget.getRequestLine());
> > >
> > >             CloseableHttpResponse response =
> httpclient.execute(httpget);
> > >             try {
> > >                 HttpEntity entity = response.getEntity();
> > >
> > >
> > > System.out.println("----------------------------------------");
> > >                 System.out.println(response.getStatusLine());
> > >                 EntityUtils.consume(entity);
> > >             } finally {
> > >                 response.close();
> > >             }
> > >         } finally {
> > >             httpclient.close();
> > >         }
> > >     }
> > >
> > > }
> > > ======================================================
> > >
> > >
> > >
> > > Compile error logs
> > > =========================
> > > somshekar@celsys041:~$ javac -classpath
> > >
> > > /home/somshekar/akshay/java-jvms/httpcomponents-client-4.5.9/lib/htt
> > > pc
> > > lient-4.5.9.jar
> > > ClientCustomSSL.java
> > > ClientCustomSSL.java:33: error: cannot find symbol import
> > > org.apache.http.HttpEntity;
> > >                       ^
> > >   symbol:   class HttpEntity
> > >   location: package org.apache.http
> > > ClientCustomSSL.java:40: error: package org.apache.http.ssl does not
> > > exist import org.apache.http.ssl.SSLContexts;
> > >                           ^
> > > ClientCustomSSL.java:41: error: package org.apache.http.util does
> > > not exist import org.apache.http.util.EntityUtils;
> > >                            ^
> > > warning: unknown enum constant ThreadingBehavior.SAFE
> > >   reason: class file for
> > > org.apache.http.annotation.ThreadingBehavior
> > > not found
> > > warning: unknown enum constant ThreadingBehavior.SAFE
> > > ClientCustomSSL.java:51: error: cannot find symbol
> > >         SSLContext sslcontext = SSLContexts.custom()
> > >                                 ^
> > >   symbol:   variable SSLContexts
> > >   location: class ClientCustomSSL
> > > ClientCustomSSL.java:68: error: cannot access HttpRequest
> > >             System.out.println("Executing request " +
> > > httpget.getRequestLine());
> > >                                                              ^
> > >   class file for org.apache.http.HttpRequest not found
> > > ClientCustomSSL.java:70: error: cannot access AbstractHttpMessage
> > >             CloseableHttpResponse response =
> httpclient.execute(httpget);
> > >                                                        ^
> > >   class file for org.apache.http.message.AbstractHttpMessage not
> > > found
> > > ClientCustomSSL.java:72: error: cannot find symbol
> > >                 HttpEntity entity = response.getEntity();
> > >                 ^
> > >   symbol:   class HttpEntity
> > >   location: class ClientCustomSSL
> > > ClientCustomSSL.java:72: error: cannot access HttpResponse
> > >                 HttpEntity entity = response.getEntity();
> > >                                             ^
> > >   class file for org.apache.http.HttpResponse not found
> > > ClientCustomSSL.java:75: error: cannot find symbol
> > >                 System.out.println(response.getStatusLine());
> > >                                            ^
> > >   symbol:   method getStatusLine()
> > >   location: variable response of type CloseableHttpResponse
> > > ClientCustomSSL.java:76: error: cannot find symbol
> > >                 EntityUtils.consume(entity);
> > >                 ^
> > >   symbol:   variable EntityUtils
> > >   location: class ClientCustomSSL
> > > 10 errors
> > > 2 warnings
> > > ==============================================================
> > > somshekar@celsys041:~$
> > >
> > > thanks in advance
> > > Regards
> > > Somshekar C Kadam
> > > 9036660538
> > >
> > >
> > > On Thu, Sep 5, 2019 at 5:06 PM <yo...@yossi.at> wrote:
> > >
> > > > The compilation error are the result of you coping code from HC
> > > > version
> > > > 5.0 and using it with JARs for HC 4.5.x. The hint is in the
> > > > package name (client5).
> > > > I suggest you look for examples for the current version (4.5.x).
> > > >
> > > >
> > > > -----Original Message-----
> > > > From: Somshekar C Kadam <somkada...@gmail.com>
> > > > Sent: Thursday, 5 September 2019 14:28
> > > > To: HttpClient User Discussion <httpclient-users@hc.apache.org>
> > > > Subject: Re: apache httpclient
> > > >
> > > > Hi Bernd,
> > > >
> > > > I am using java 1.8, Ubuntu 16.04, code is given below which I am
> > > > trying to compile which uses apache httpclient.
> > > >
> > > > httpclient jar fies downloaded
> > > >
> > > > somshekar@celsys041:~$ ls
> > > > /home/somshekar/akshay/java-jvms/httpcomponents-client-4.5.9/lib/
> > > > commons-codec-1.11.jar   httpclient-4.5.9.jar
> > > >  httpclient-win-4.5.9.jar  jna-4.5.2.jar commons-logging-1.2.jar
> > > > httpclient-cache-4.5.9.jar  httpcore-4.4.11.jar
> > > >     jna-platform-4.5.2.jar
> > > > fluent-hc-4.5.9.jar      httpclient-osgi-4.5.9.jar
>  httpmime-4.5.9.jar
> > > >
> > > > error log
> > > > ====================
> > > > somshekar@celsys041:~$ javac -classpath
> > > >
> > > > /home/somshekar/akshay/java-jvms/httpcomponents-client-4.5.9/lib/h
> > > > tt
> > > > pc
> > > > ore-4.4.11.jar
> > > > ClientCustomSSL.java
> > > > ClientCustomSSL.java:9: error: package
> > > > org.apache.hc.client5.http.classic.methods does not exist import
> > > > org.apache.hc.client5.http.classic.methods.HttpGet;
> > > >                                                  ^
> > > > ClientCustomSSL.java:10: error: package
> > > > org.apache.hc.client5.http.impl.classic does not exist import
> > > > org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
> > > >                                               ^
> > > > ClientCustomSSL.java:11: error: package
> > > > org.apache.hc.client5.http.impl.classic does not exist import
> > > > org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
> > > >                                               ^
> > > > ClientCustomSSL.java:12: error: package
> > > > org.apache.hc.client5.http.impl.classic does not exist import
> > > > org.apache.hc.client5.http.impl.classic.HttpClients;
> > > >                                               ^
> > > > ClientCustomSSL.java:13: error: package
> > > > org.apache.hc.client5.http.impl.io
> > > > does not exist
> > > > import
> > > > org.apache.hc.client5.http.impl.io
> > > > .PoolingHttpClientConnectionManagerBuilder;
> > > >                                          ^
> > > > ClientCustomSSL.java:14: error: package
> > > > org.apache.hc.client5.http.io does not exist import
> > > > org.apache.hc.client5.http.io .HttpClientConnectionManager;
> > > >                                     ^
> > > > ClientCustomSSL.java:15: error: package
> > > > org.apache.hc.client5.http.protocol
> > > > does not exist
> > > > import org.apache.hc.client5.http.protocol.HttpClientContext;
> > > >                                           ^
> > > > ClientCustomSSL.java:16: error: package
> > > > org.apache.hc.client5.http.ssl does not exist import
> > > > org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
> > > >                                      ^
> > > > ClientCustomSSL.java:17: error: package
> > > > org.apache.hc.client5.http.ssl does not exist import
> > > > org.apache.hc.client5.http.ssl.SSLConnectionSocketFactoryBuilder;
> > > >                                      ^
> > > > ClientCustomSSL.java:18: error: package
> > > > org.apache.hc.core5.http.io.entity
> > > > does not exist
> > > > import org.apache.hc.core5.http.io.entity.EntityUtils;
> > > >                                          ^
> > > > ClientCustomSSL.java:19: error: package
> > > > org.apache.hc.core5.http.ssl does not exist import
> org.apache.hc.core5.http.ssl.TLS;
> > > >                                    ^
> > > > ClientCustomSSL.java:20: error: package org.apache.hc.core5.ssl
> > > > does not exist import org.apache.hc.core5.ssl.SSLContexts;
> > > >                               ^
> > > > ClientCustomSSL.java:21: error: package org.apache.hc.core5.ssl
> > > > does not exist import org.apache.hc.core5.ssl.TrustStrategy;
> > > >                               ^
> > > > ClientCustomSSL.java:32: error: cannot find symbol
> > > >                 .loadTrustMaterial(new TrustStrategy() {
> > > >                                        ^
> > > >   symbol:   class TrustStrategy
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:34: error: method does not override or
> > > > implement a method from a supertype
> > > >                     @Override
> > > >                     ^
> > > > ClientCustomSSL.java:31: error: cannot find symbol
> > > >         final SSLContext sslcontext = SSLContexts.custom()
> > > >                                       ^
> > > >   symbol:   variable SSLContexts
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:45: error: cannot find symbol
> > > >         final SSLConnectionSocketFactory sslSocketFactory =
> > > > SSLConnectionSocketFactoryBuilder.create()
> > > >               ^
> > > >   symbol:   class SSLConnectionSocketFactory
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:47: error: cannot find symbol
> > > >                 .setTlsVersions(TLS.V_1_2)
> > > >                                 ^
> > > >   symbol:   variable TLS
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:45: error: cannot find symbol
> > > >         final SSLConnectionSocketFactory sslSocketFactory =
> > > > SSLConnectionSocketFactoryBuilder.create()
> > > >                                                             ^
> > > >   symbol:   variable SSLConnectionSocketFactoryBuilder
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:46: error: cannot find symbol
> > > >                 .setSslContext(SSLContexts.createSystemDefault())
> > > >                                ^
> > > >   symbol:   variable SSLContexts
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:49: error: cannot find symbol
> > > >         final HttpClientConnectionManager cm =
> > > > PoolingHttpClientConnectionManagerBuilder.create()
> > > >               ^
> > > >   symbol:   class HttpClientConnectionManager
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:49: error: cannot find symbol
> > > >         final HttpClientConnectionManager cm =
> > > > PoolingHttpClientConnectionManagerBuilder.create()
> > > >                                                ^
> > > >   symbol:   variable PoolingHttpClientConnectionManagerBuilder
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:52: error: cannot find symbol
> > > >         try (CloseableHttpClient httpclient = HttpClients.custom()
> > > >              ^
> > > >   symbol:   class CloseableHttpClient
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:52: error: cannot find symbol
> > > >         try (CloseableHttpClient httpclient = HttpClients.custom()
> > > >                                               ^
> > > >   symbol:   variable HttpClients
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:56: error: cannot find symbol
> > > >             final HttpGet httpget = new
> > > > HttpGet("https://httpbin.org/
> > ");
> > > >                   ^
> > > >   symbol:   class HttpGet
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:56: error: cannot find symbol
> > > >             final HttpGet httpget = new
> > > > HttpGet("https://httpbin.org/
> > ");
> > > >                                         ^
> > > >   symbol:   class HttpGet
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:60: error: cannot find symbol
> > > >             final HttpClientContext clientContext =
> > > > HttpClientContext.create();
> > > >                   ^
> > > >   symbol:   class HttpClientContext
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:60: error: cannot find symbol
> > > >             final HttpClientContext clientContext =
> > > > HttpClientContext.create();
> > > >                                                     ^
> > > >   symbol:   variable HttpClientContext
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:61: error: cannot find symbol
> > > >             try (CloseableHttpResponse response =
> > > > httpclient.execute(httpget, clientContext)) {
> > > >                  ^
> > > >   symbol:   class CloseableHttpResponse
> > > >   location: class ClientCustomSSL
> > > > ClientCustomSSL.java:64: error: cannot find symbol
> > > >
> > > > System.out.println(EntityUtils.toString(response.getEntity()));
> > > >                                    ^
> > > >   symbol:   variable EntityUtils
> > > >   location: class ClientCustomSSL
> > > > 30 errors
> > > > ========================================================
> > > >
> > > >
> > > > Code
> > > > ===================================================
> > > > package org.apache.hc.client5.http.examples;
> > > >
> > > > import java.security.cert.CertificateException;
> > > > import java.security.cert.X509Certificate;
> > > >
> > > > import javax.net.ssl.SSLContext;
> > > > import javax.net.ssl.SSLSession;
> > > >
> > > > import org.apache.hc.client5.http.classic.methods.HttpGet;
> > > > import
> > > > org.apache.hc.client5.http.impl.classic.CloseableHttpClient;
> > > > import
> > > > org.apache.hc.client5.http.impl.classic.CloseableHttpResponse;
> > > > import org.apache.hc.client5.http.impl.classic.HttpClients;
> > > > import
> > > > org.apache.hc.client5.http.impl.io
> > > > .PoolingHttpClientConnectionManagerBuilder;
> > > > import org.apache.hc.client5.http.io.HttpClientConnectionManager;
> > > > import org.apache.hc.client5.http.protocol.HttpClientContext;
> > > > import org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
> > > > import
> > > > org.apache.hc.client5.http.ssl.SSLConnectionSocketFactoryBuilder;
> > > > import org.apache.hc.core5.http.io.entity.EntityUtils;
> > > > import org.apache.hc.core5.http.ssl.TLS; import
> > > > org.apache.hc.core5.ssl.SSLContexts;
> > > > import org.apache.hc.core5.ssl.TrustStrategy;
> > > >
> > > > /**
> > > >  * This example demonstrates how to create secure connections with
> > > > a custom SSL
> > > >  * context.
> > > >  */
> > > > public class ClientCustomSSL {
> > > >
> > > >     public final static void main(final String[] args) throws
> > Exception {
> > > >         // Trust standard CA and those trusted by our custom strategy
> > > >         final SSLContext sslcontext = SSLContexts.custom()
> > > >                 .loadTrustMaterial(new TrustStrategy() {
> > > >
> > > >                     @Override
> > > >                     public boolean isTrusted(
> > > >                             final X509Certificate[] chain,
> > > >                             final String authType) throws
> > > > CertificateException {
> > > >                         final X509Certificate cert = chain[0];
> > > >                         return "CN=httpbin.org
> > > > ".equalsIgnoreCase(cert.getSubjectDN().getName());
> > > >                     }
> > > >
> > > >                 })
> > > >                 .build();
> > > >         // Allow TLSv1.2 protocol only
> > > >         final SSLConnectionSocketFactory sslSocketFactory =
> > > > SSLConnectionSocketFactoryBuilder.create()
> > > >                 .setSslContext(SSLContexts.createSystemDefault())
> > > >                 .setTlsVersions(TLS.V_1_2)
> > > >                 .build();
> > > >         final HttpClientConnectionManager cm =
> > > > PoolingHttpClientConnectionManagerBuilder.create()
> > > >                 .setSSLSocketFactory(sslSocketFactory)
> > > >                 .build();
> > > >         try (CloseableHttpClient httpclient = HttpClients.custom()
> > > >                 .setConnectionManager(cm)
> > > >                 .build()) {
> > > >
> > > >             final HttpGet httpget = new
> > > > HttpGet("https://httpbin.org/";);
> > > >
> > > >             System.out.println("Executing request " +
> > > > httpget.getMethod()
> > > > + " " + httpget.getUri());
> > > >
> > > >             final HttpClientContext clientContext =
> > > > HttpClientContext.create();
> > > >             try (CloseableHttpResponse response =
> > > > httpclient.execute(httpget, clientContext)) {
> > > >
> > > > System.out.println("----------------------------------------");
> > > >                 System.out.println(response.getCode() + " " +
> > > > response.getReasonPhrase());
> > > >
> > > > System.out.println(EntityUtils.toString(response.getEntity()));
> > > >
> > > >                 final SSLSession sslSession =
> > > > clientContext.getSSLSession();
> > > >                 if (sslSession != null) {
> > > >                     System.out.println("SSL protocol " +
> > > > sslSession.getProtocol());
> > > >                     System.out.println("SSL cipher suite " +
> > > > sslSession.getCipherSuite());
> > > >                 }
> > > >             }
> > > >         }
> > > >     }
> > > >
> > > > }
> > > > =============================================================
> > > >
> > > >
> > > >
> > > > Regards
> > > > Somshekar C Kadam
> > > > 9036660538
> > > >
> > > >
> > > > On Thu, Sep 5, 2019 at 4:47 PM Somshekar C Kadam
> > > > <somkada...@gmail.com>
> > > > wrote:
> > > >
> > > > > Hi Yossi,
> > > > >
> > > > > will try and get back on this.
> > > > >
> > > > > Regards
> > > > > Somshekar C Kadam
> > > > > 9036660538
> > > > >
> > > > >
> > > > > On Thu, Sep 5, 2019 at 3:24 PM <yo...@yossi.at> wrote:
> > > > >
> > > > >> One possible explanation for the 20 second delay is that the
> > > > >> curl call goes through a proxy (defined by the
> > > > >> http_proxy/https_proxy environment properties), while Java does
> > > > >> not pick up these properties. If this is indeed the case, you
> > > > >> need to pass some system
> > > > properties in your java call.
> > > > >> See the documentation:
> > > > >>
> https://docs.oracle.com/javase/8/docs/technotes/guides/net/proxies.
> > > > >> html
> > > > .
> > > > >>
> > > > >> Yossi.
> > > > >>
> > > > >> -----Original Message-----
> > > > >> From: Somshekar C Kadam <somkada...@gmail.com>
> > > > >> Sent: Thursday, 5 September 2019 12:45
> > > > >> To: HttpClient User Discussion <httpclient-users@hc.apache.org>
> > > > >> Subject: Re: apache httpclient
> > > > >>
> > > > >> Hi Brenda,
> > > > >>
> > > > >> First of all thanks for your time and advice.
> > > > >>  I am not asking for Arm, I was telling for Intel Ubuntu Linux
> > > > >> machine, not able to get it compiled.
> > > > >>
> > > > >> I will send error to you later.
> > > > >>
> > > > >> Regards Somshekar
> > > > >>
> > > > >> On Thu, Sep 5, 2019, 3:05 PM Bernd Eckenfels
> > > > >> <e...@zusammenkunft.net>
> > > > >> wrote:
> > > > >>
> > > > >> > Hello,
> > > > >> >
> > > > >> > The URLConnection code looks fine (line reading is not the
> > > > >> > most performing way to do it and buffer size is probably on
> > > > >> > the small side but that should not be a deal breaker). Maybe
> > > > >> > you can add timestamp printing so you can see where the delay
> happens.
> > > > >> > (Especially is it while print_certs which means it is the
> > > > >> > connection/handshake or is the
> > > > >> print taking so long.
> > > > >> >
> > > > >> > BTW: when measuring you also should not print to console,
> > > > >> > that can be very slow on embedded devices (and in general)
> > > > >> >
> > > > >> > As soon as you provide us the error details we can help you
> > > > >> > with that, I don’t think there are specific compile
> > > > >> > instructions available
> > > > for arm.
> > > > >> >
> > > > >> > Gruss
> > > > >> > Bernd
> > > > >> >
> > > > >> >
> > > > >> > --
> > > > >> > http://bernd.eckenfels.net
> > > > >> >
> > > > >> > ________________________________
> > > > >> > Von: Somshekar C Kadam <somkada...@gmail.com>
> > > > >> > Gesendet: Donnerstag, September 5, 2019 11:15 AM
> > > > >> > An: HttpClient User Discussion
> > > > >> > Betreff: Re: apache httpclient
> > > > >> >
> > > > >> > Hi Bernd,
> > > > >> >
> > > > >> > Missed the sample program used HttpsClient.java
> > > > >> > ================ import java.net.MalformedURLException;
> > > > >> > import java.net.URL; import java.security.cert.Certificate;
> > > > >> > import java.io.*;
> > > > >> >
> > > > >> > import javax.net.ssl.HttpsURLConnection; import
> > > > >> > javax.net.ssl.SSLPeerUnverifiedException;
> > > > >> >
> > > > >> > public class HttpsClient {
> > > > >> >
> > > > >> > public static void main(String[] args) { new
> > > > >> > HttpsClient().testIt(); }
> > > > >> >
> > > > >> > private void testIt(){
> > > > >> >
> > > > >> > // String https_url = "https://www.google.com/";; String
> > > > >> > https_url
> > > = "
> > > > >> > https://transparencyreport.google.com/https/overview?hl=en";;
> > > > >> > URL url;
> > > > >> > try {
> > > > >> >
> > > > >> > url = new URL(https_url);
> > > > >> > HttpsURLConnection con =
> > > > >> > (HttpsURLConnection)url.openConnection();
> > > > >> >
> > > > >> > //dumpl all cert info
> > > > >> > print_https_cert(con);
> > > > >> >
> > > > >> > //dump all the content
> > > > >> > print_content(con);
> > > > >> >
> > > > >> > } catch (MalformedURLException e) { e.printStackTrace(); }
> > > > >> > catch (IOException e) { e.printStackTrace(); }
> > > > >> >
> > > > >> > }
> > > > >> >
> > > > >> > private void print_https_cert(HttpsURLConnection con){
> > > > >> >
> > > > >> > if(con!=null){
> > > > >> >
> > > > >> > try {
> > > > >> >
> > > > >> > System.out.println("Response Code : " +
> > > > >> > con.getResponseCode()); System.out.println("Cipher Suite : "
> > > > >> > + con.getCipherSuite()); System.out.println("\n");
> > > > >> >
> > > > >> > Certificate[] certs = con.getServerCertificates();
> > > > >> > for(Certificate cert : certs){ System.out.println("Cert Type : "
> > > > >> > + cert.getType()); System.out.println("Cert Hash Code : " +
> > > > >> > cert.hashCode()); System.out.println("Cert Public Key Algorithm
> :
> > "
> > > > >> > + cert.getPublicKey().getAlgorithm());
> > > > >> > System.out.println("Cert Public Key Format : "
> > > > >> > + cert.getPublicKey().getFormat());
> > > > >> > System.out.println("\n");
> > > > >> > }
> > > > >> >
> > > > >> > } catch (SSLPeerUnverifiedException e) { e.printStackTrace();
> > > > >> > } catch (IOException e){ e.printStackTrace(); }
> > > > >> >
> > > > >> > }
> > > > >> >
> > > > >> > }
> > > > >> >
> > > > >> > private void print_content(HttpsURLConnection con){
> > > > >> > if(con!=null){
> > > > >> >
> > > > >> > try {
> > > > >> >
> > > > >> > System.out.println("****** Content of the URL ********");
> > > > >> > BufferedReader br = new BufferedReader( new
> > > > >> > InputStreamReader(con.getInputStream()));
> > > > >> >
> > > > >> > String input;
> > > > >> >
> > > > >> > while ((input = br.readLine()) != null){
> > > > >> > System.out.println(input); } br.close();
> > > > >> >
> > > > >> > } catch (IOException e) {
> > > > >> > e.printStackTrace();
> > > > >> > }
> > > > >> >
> > > > >> > }
> > > > >> >
> > > > >> > }
> > > > >> >
> > > > >> > }
> > > > >> > ============================= Regards Somshekar C Kadam
> > > > >> > 9036660538
> > > > >> >
> > > > >> >
> > > > >> > On Thu, Sep 5, 2019 at 2:40 PM Somshekar C Kadam
> > > > >> > <somkada...@gmail.com>
> > > > >> > wrote:
> > > > >> >
> > > > >> > > Hi Bernd,
> > > > >> > >
> > > > >> > > On My Ubuntu Machine I am able to compile Intel based Java
> > > > >> > > programs no issue.
> > > > >> > > We have Armv7 target board openjdk installed, able to
> > > > >> > > compile java
> > > > >> > program
> > > > >> > > and run on the board no issues,
> > > > >> > >
> > > > >> > > I run the curl command on the armv7 target board, able to
> > > > >> > > connect to
> > > > >> > https
> > > > >> > > link and get the content, same when I use the program below
> > > > >> > > provided it takes 15 ~20 seconds more using
> httpsurlconenction.
> > > > >> > >
> > > > >> > >
> > > > >> > > Now I wanted to try out alternative Apache httpclient to
> > > > >> > > check if it can reduce time to connect same https link. I
> > > > >> > > am not able to compile the program, I will provide the
> > > > >> > > details in a while (added jar file for httpcore). So
> > > > >> > > reuested to provide any link or steps
> > > > >> > >
> > > > >> > > Thanks in advance
> > > > >> > >
> > > > >> > > Regards
> > > > >> > > Somshekar C Kadam
> > > > >> > > 9036660538
> > > > >> > >
> > > > >> > >
> > > > >> > > On Thu, Sep 5, 2019 at 2:30 PM Bernd Eckenfels
> > > > >> > > <e...@zusammenkunft.net>
> > > > >> > > wrote:
> > > > >> > >
> > > > >> > >> Hello,
> > > > >> > >>
> > > > >> > >> Are you able to compile and run any java programs?
> > > > >> > >>
> > > > >> > >> What is the error you are getting, what is the command you
> > > > >> > >> are using to compile it and how does your source directory
> > > > >> > >> looks
> > > like?
> > > > >> > >>
> > > > >> > >> You can compile the sample client on other machines, if
> > > > >> > >> this helps your development velocity.
> > > > >> > >>
> > > > >> > >> You can’t really compare native program (curl) speed with
> > > > >> > >> Java, but it certainly should not be that different (I
> > > > >> > >> mean yes you can, it just does not tell you much). Do you
> > > > >> > >> count
> > > startup Time?
> > > > >> > >> How did you Test Java if
> > > > >> > it
> > > > >> > >> does not compile?
> > > > >> > >>
> > > > >> > >> Is the only reason you look into HTTPClient the delay you
> > > > >> > >> see with URLConnection? Do you have a sample program for
> > > > >> > >> that which shows the slowness?
> > > > >> > >> Gruss
> > > > >> > >> Bernd
> > > > >> > >>
> > > > >> > >>
> > > > >> > >> --
> > > > >> > >> http://bernd.eckenfels.net
> > > > >> > >>
> > > > >> > >> ________________________________
> > > > >> > >> Von: Somshekar C Kadam <somkada...@gmail.com>
> > > > >> > >> Gesendet: Donnerstag, September 5, 2019 10:53 AM
> > > > >> > >> An: HttpClient User Discussion; Somshekar kadam
> > > > >> > >> Betreff: Re: apache httpclient
> > > > >> > >>
> > > > >> > >> Hi Bernd,
> > > > >> > >> Thanks for the quick reply.
> > > > >> > >> Excuse me on the replyall part, my bad.
> > > > >> > >>
> > > > >> > >> when I use curl same https connection quickly returns
> > > > >> > >> within
> > > > >> > >> 2 seconds, ofcourse different cipher is used.
> > > > >> > >> Also I am not able to get sample apache httpclient
> > > > >> > >> compiled on Ubuntu Linux machine, any link or steps which
> > > > >> > >> I can get to make it compile and work will help.
> > > > >> > >>
> > > > >> > >> code
> > > > >> > >> =============
> > > > >> > >> package org.apache.hc.client5.http.examples;
> > > > >> > >>
> > > > >> > >> import java.security.cert.CertificateException;
> > > > >> > >> import java.security.cert.X509Certificate;
> > > > >> > >>
> > > > >> > >> import javax.net.ssl.SSLContext; import
> > > > >> > >> javax.net.ssl.SSLSession;
> > > > >> > >>
> > > > >> > >> import org.apache.hc.client5.http.classic.methods.HttpGet;
> > > > >> > >> import
> > > > >> > >> org.apache.hc.client5.http.impl.classic.CloseableHttpClien
> > > > >> > >> t;
> > > > >> > >> import
> > > > >> > >> org.apache.hc.client5.http.impl.classic.CloseableHttpRespo
> > > > >> > >> ns
> > > > >> > >> e; import
> > > > >> > >> org.apache.hc.client5.http.impl.classic.HttpClients;
> > > > >> > >> import
> > > > >> > >> org.apache.hc.client5.http.impl.io
> > > > >> > >> .PoolingHttpClientConnectionManagerBuilder;
> > > > >> > >> import
> > > > >> > >> org.apache.hc.client5.http.io.HttpClientConnectionManager;
> > > > >> > >> import
> > > > >> > >> org.apache.hc.client5.http.protocol.HttpClientContext;
> > > > >> > >> import
> > > > >> > >> org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory;
> > > > >> > >> import
> > > > >> > >> org.apache.hc.client5.http.ssl.SSLConnectionSocketFactoryB
> > > > >> > >> ui
> > > > >> > >> ld er ; import
> > > > >> > >> org.apache.hc.core5.http.io.entity.EntityUtils;
> > > > >> > >> import org.apache.hc.core5.http.ssl.TLS; import
> > > > >> > >> org.apache.hc.core5.ssl.SSLContexts;
> > > > >> > >> import org.apache.hc.core5.ssl.TrustStrategy;
> > > > >> > >>
> > > > >> > >> /**
> > > > >> > >> * This example demonstrates how to create secure
> > > > >> > >> connections with a
> > > > >> > custom
> > > > >> > >> SSL
> > > > >> > >> * context.
> > > > >> > >> */
> > > > >> > >> public class ClientCustomSSL {
> > > > >> > >>
> > > > >> > >> public final static void main(final String[] args) throws
> > > > >> > >> Exception { // Trust standard CA and those trusted by our
> > > > >> > >> custom strategy final SSLContext sslcontext =
> > > > >> > >> SSLContexts.custom() .loadTrustMaterial(new
> > > > >> > >> TrustStrategy() {
> > > > >> > >>
> > > > >> > >> @Override
> > > > >> > >> public boolean isTrusted(
> > > > >> > >> final X509Certificate[] chain, final String authType)
> > > > >> > >> throws CertificateException { final X509Certificate cert =
> > > > >> > >> chain[0]; return "CN=httpbin.org
> > > > >> > >> ".equalsIgnoreCase(cert.getSubjectDN().getName());
> > > > >> > >> }
> > > > >> > >>
> > > > >> > >> })
> > > > >> > >> .build();
> > > > >> > >> // Allow TLSv1.2 protocol only final
> > > > >> > >> SSLConnectionSocketFactory sslSocketFactory =
> > > > >> > >> SSLConnectionSocketFactoryBuilder.create()
> > > > >> > >> .setSslContext(SSLContexts.createSystemDefault())
> > > > >> > >> .setTlsVersions(TLS.V_1_2) .build(); final
> > > > >> > >> HttpClientConnectionManager cm =
> > > > >> > >> PoolingHttpClientConnectionManagerBuilder.create()
> > > > >> > >> .setSSLSocketFactory(sslSocketFactory)
> > > > >> > >> .build();
> > > > >> > >> try (CloseableHttpClient httpclient = HttpClients.custom()
> > > > >> > >> .setConnectionManager(cm)
> > > > >> > >> .build()) {
> > > > >> > >>
> > > > >> > >> final HttpGet httpget = new
> > > > >> > >> HttpGet("https://httpbin.org/";);
> > > > >> > >>
> > > > >> > >> System.out.println("Executing request " +
> > > > >> > >> httpget.getMethod() +
> > > " "
> > > > >> > >> + httpget.getUri());
> > > > >> > >>
> > > > >> > >> final HttpClientContext clientContext =
> > > > >> > >> HttpClientContext.create(); try (CloseableHttpResponse
> > > > >> > >> response = httpclient.execute(httpget,
> > > > >> > >> clientContext)) {
> > > > >> > >>
> > > > >> > >> System.out.println("--------------------------------------
> > > > >> > >> --
> > > > >> > >> ")
> > > > >> > >> ;
> > > > >> > >> System.out.println(response.getCode() + " " +
> > > > >> > >> response.getReasonPhrase());
> > > > >> > >>
> > > > >> > >> System.out.println(EntityUtils.toString(response.getEntity
> > > > >> > >> ()
> > > > >> > >> ))
> > > > >> > >> ;
> > > > >> > >>
> > > > >> > >> final SSLSession sslSession =
> > > > >> > >> clientContext.getSSLSession(); if (sslSession != null) {
> System.out.println("SSL protocol "
> > > > >> > >> + sslSession.getProtocol()); System.out.println("SSL
> > > > >> > >> + cipher
> > > > >> > >> suite " + sslSession.getCipherSuite()); } } } }
> > > > >> > >>
> > > > >> > >> }
> > > > >> > >> ===================
> > > > >> > >>
> > > > >> > >> Regards
> > > > >> > >> Somshekar C Kadam
> > > > >> > >> 9036660538
> > > > >> > >>
> > > > >> > >>
> > > > >> > >> On Thu, Sep 5, 2019 at 2:09 PM Bernd Eckenfels
> > > > >> > >> <e...@zusammenkunft.net>
> > > > >> > >> wrote:
> > > > >> > >>
> > > > >> > >> > Hello,
> > > > >> > >> >
> > > > >> > >> > Certainly you can use the Apache HTTPClient to replace
> > > > >> > >> > URLConnection,
> > > > >> > >> you
> > > > >> > >> > don’t need to do anything special on ARM other than
> > > > >> > >> > having Java
> > > > >> > Runtime
> > > > >> > >> > installed.
> > > > >> > >> >
> > > > >> > >> > If you have a slow http download changes are high this
> > > > >> > >> > is caused by
> > > > >> > slow
> > > > >> > >> > CPU, missing random numbers, slow network or server. All
> > > > >> > >> > those
> > > > >> > >> conditions
> > > > >> > >> > might affect URLConnection or HTTPClient, so there is no
> > > > >> > >> > guarantee
> > > > >> > that
> > > > >> > >> > switching to Apache HTTPClient will improve things.
> > > > >> > >> >
> > > > >> > >> > BTW your CC List is insane, why would you want to bother
> > > > >> > >> > people like
> > > > >> > >> that?
> > > > >> > >> > Gruss
> > > > >> > >> > Bernd
> > > > >> > >> >
> > > > >> > >> >
> > > > >> > >> > --
> > > > >> > >> > http://bernd.eckenfels.net
> > > > >> > >> >
> > > > >> > >> > ________________________________
> > > > >> > >> > Von: Somshekar C Kadam <somkada...@gmail.com>
> > > > >> > >> > Gesendet: Donnerstag, September 5, 2019 10:26 AM
> > > > >> > >> > An: HttpClient User Discussion
> > > > >> > >> > Cc: annou...@apache.org; priv...@hc.apache.org;
> > > > >> > >> > d...@hc.apache.org
> > > > >> > >> > Betreff: apache httpclient
> > > > >> > >> >
> > > > >> > >> > Hi All,
> > > > >> > >> > I am a newbie to Java.
> > > > >> > >> > We are going to try Apache httpclient as an alternative
> > > > >> > >> > for openjdk httpsurl connection class.
> > > > >> > >> >
> > > > >> > >> > We see that using openjdk 8 and above we s eee that when
> > > > >> > >> > using
> > > > >> > httpsurl
> > > > >> > >> > conenction we see a delay of 10 to 20 seconds to get
> > > > >> > >> > content of the
> > > > >> > >> url. We
> > > > >> > >> > use Armv7, Linux. We wanted first to begin with to get
> > > > >> > >> > normal
> > > > >> > httpclient
> > > > >> > >> > working on Ubuntu Linux machine.
> > > > >> > >> > Dont find any steps to get it working, is there any link
> > > > >> > >> > how to use it
> > > > >> > >> on
> > > > >> > >> > ubuntu machine httpclient working, please point.
> > > > >> > >> >
> > > > >> > >> > Also you like to know hopefully this approach is correct
> > > > >> > >> > to try Apachr httpsclient instaed of openjdk
> > httpsurlconnection.
> > > > >> > >> > please advice
> > > > >> > >> > Regards
> > > > >> > >> > Somshekar C Kadam
> > > > >> > >> > 9036660538
> > > > >> > >> >
> > > > >> > >> >
> > > > >> > >> > On Thu, Sep 5, 2019 at 1:52 PM Oleg Kalnichevski
> > > > >> > >> > <ol...@apache.org>
> > > > >> > >> wrote:
> > > > >> > >> >
> > > > >> > >> > > The Apache HttpComponents project is pleased to
> > > > >> > >> > > announce
> > > > >> > >> > > 4.4.12 GA release of HttpComponents Core.
> > > > >> > >> > >
> > > > >> > >> > > This is a maintenance release that corrects a number
> > > > >> > >> > > of defects discovered since release 4.4.11.
> > > > >> > >> > >
> > > > >> > >> > > Please note that as of 4.4 HttpCore requires Java 1.6
> > > > >> > >> > > or
> > > newer.
> > > > >> > >> > >
> > > > >> > >> > > IMPORTANT: Users of HttpCore 4.x GA releases are
> > > > >> > >> > > strongly encouraged
> > > > >> > >> to
> > > > >> > >> > > evaluate new HttpCore 5.0 APIs and give the project
> > > > >> > >> > > developers feedback, share critique or propose changes.
> > > > >> > >> > >
> > > > >> > >> > > Download -
> > > > >> > >> > > <http://hc.apache.org/downloads.cgi>
> > > > >> > >> > > Release notes -
> > > > >> > >> > > <
> > > > >> >
> http://www.apache.org/dist/httpcomponents/httpcore/RELEASE_NOTES.
> > > > >> > tx
> > > > >> > t
> > > > >> > >> >
> > > > >> > >> > > HttpComponents site -
> > > > >> > >> > > <http://hc.apache.org/>
> > > > >> > >> > >
> > > > >> > >> > > About HttpComponents Core
> > > > >> > >> > >
> > > > >> > >> > > HttpCore is a set of low level HTTP transport
> > > > >> > >> > > components that can be used to build custom client and
> > > > >> > >> > > server side HTTP services with a minimal footprint.
> > > > >> > >> > > HttpCore supports two I/O
> > > > >> > >> > > models: a blocking I/O model based on the classic Java
> > > > >> > >> > > I/O and a non-blocking, event driven I/O model based
> > > > >> > >> > > on
> > Java NIO.
> > > > >> > >> > >
> > > > >> > >> > >
> > > > >> > >> > >
> > > > >> > >> > >
> > > > >> > -------------------------------------------------------------
> > > > >> > --
> > > > >> > --
> > > > >> > --
> > > > >> > --
> > > > >> > >> > > To unsubscribe, e-mail:
> > > > >> > >> > > httpclient-users-unsubscr...@hc.apache.org
> > > > >> > >> > > For additional commands, e-mail:
> > > > >> > httpclient-users-h...@hc.apache.org
> > > > >> > >> > >
> > > > >> > >> > >
> > > > >> > >> >
> > > > >> > >>
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >>
> > > > >> ---------------------------------------------------------------
> > > > >> --
> > > > >> --
> > > > >> -- To unsubscribe, e-mail:
> > > > >> httpclient-users-unsubscr...@hc.apache.org
> > > > >> For additional commands, e-mail:
> > > > >> httpclient-users-h...@hc.apache.org
> > > > >>
> > > > >>
> > > >
> > > >
> > > > ------------------------------------------------------------------
> > > > --
> > > > - To unsubscribe, e-mail:
> > > > httpclient-users-unsubscr...@hc.apache.org
> > > > For additional commands, e-mail:
> > > > httpclient-users-h...@hc.apache.org
> > > >
> > > >
> > >
> > >
> > >
> > > --------------------------------------------------------------------
> > > - To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> > > For additional commands, e-mail: httpclient-users-h...@hc.apache.org
> > >
> > >
> >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> > For additional commands, e-mail: httpclient-users-h...@hc.apache.org
> >
> >
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
> For additional commands, e-mail: httpclient-users-h...@hc.apache.org
>
>

Reply via email to