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