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

Reply via email to