title: Received fatal alert: handshake_failure : javax.net.ssl.SSLHandshakeException
body: <p>I am running the below code on Java 8,</p>
  
  <pre><code>import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.io.UnsupportedEncodingException;
  import java.nio.charset.Charset;
  
  import org.apache.commons.codec.binary.Base64;
  import org.apache.http.HttpResponse;
  import org.apache.http.client.HttpClient;
  import org.apache.http.client.methods.HttpPost;
  import org.apache.http.entity.StringEntity;
  import org.apache.http.impl.client.HttpClientBuilder;
  import org.json.JSONObject;
  
  public class HttpPostReq {
  public static void main(String args[]) {
      String restUrl = "https://connect-testing.urbanairship.com/api/events/";
      String username = "sample_connection";
      String password = "sample_connection";
      JSONObject jsonToSend = new JSONObject();
      String jsonData = jsonToSend.toString();
      HttpPostReq httpPostReq = new HttpPostReq();
      System.out.println(jsonData);
      HttpPost httpPost = httpPostReq.createConnectivity(restUrl, username, password);
      System.out.println(httpPost);
      httpPostReq.executeReq(jsonData, httpPost);
  }
  
  HttpPost createConnectivity(String restUrl, String username, String password) {
      HttpPost post = new HttpPost(restUrl);
      String auth = new StringBuffer(username).append(":").append(password).toString();
      byte[] encodedAuth = Base64.encodeBase64(auth.getBytes(Charset.forName("US-ASCII")));
      String authHeader = "Basic " + new String(encodedAuth);
      System.out.println(authHeader);
      post.setHeader("Authorization", authHeader);
      post.setHeader("Content-Type", "application/x-www-form-urlencoded");
      post.setHeader("Accept", "application/vnd.urbanairship+x-ndjson; version=3;");
      post.setHeader("X-Stream", "true");
      return post;
  }
  
  void executeReq(String jsonData, HttpPost httpPost) {
      try {
          executeHttpRequest(jsonData, httpPost);
      } catch (UnsupportedEncodingException e) {
          System.out.println("error while encoding api url : " + e);
      } catch (IOException e) {
          System.out.println("ioException occured while sending http request : " + e);
      } catch (Exception e) {
          System.out.println("exception occured while sending http request : " + e);
      } finally {
  
      }
  }
  
  void executeHttpRequest(String jsonData, HttpPost httpPost) throws UnsupportedEncodingException, IOException {
      HttpResponse response = null;
      String line = "";
      StringBuffer result = new StringBuffer();
      httpPost.setEntity(new StringEntity(jsonData));
      HttpClient client = HttpClientBuilder.create().build();
      response = client.execute(httpPost);
      System.out.println("Post parameters : " + jsonData);
      System.out.println("Response Code : " + response.getStatusLine().getStatusCode());
      BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
      while ((line = reader.readLine()) != null) {
          result.append(line);
      }
      System.out.println(result.toString());
  }
  }
  </code></pre>
  
  <p>Getting exception as,</p>
  
  <blockquote>
    <p>ioException occured while sending http request :
    javax.net.ssl.SSLHandshakeException: Received fatal alert:
    handshake_failure.</p>
  </blockquote>
  
  <p>I am able to connect to through curl,</p>
  
  <pre><code>curl -vv https://connect-testing.urbanairship.com/api/events/ \
  --compressed \
  -u "sample_connection:sample_connection" \
  -H "Accept: application/vnd.urbanairship+x-ndjson; version=3;" \
  -d "{}"
  </code></pre>
  
  <p>Can anyone tell me whats wrong with my java code ?</p>
  
  <p>Dependencies are as below,</p>
  
  <pre><code>&lt;dependencies&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.json&lt;/groupId&gt;
          &lt;artifactId&gt;json&lt;/artifactId&gt;
          &lt;version&gt;20090211&lt;/version&gt;
      &lt;/dependency&gt;
      &lt;dependency&gt;
          &lt;groupId&gt;org.apache.httpcomponents&lt;/groupId&gt;
          &lt;artifactId&gt;httpclient&lt;/artifactId&gt;
          &lt;version&gt;4.5.2&lt;/version&gt;
      &lt;/dependency&gt;
  </code></pre>