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