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.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 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.txt
> > >> >
> > >> > > 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
>
>

Reply via email to