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