Java 没有连接到Android上的HTTPS站点

Java 没有连接到Android上的HTTPS站点,java,android,Java,Android,我尝试用Java for Android打开我的https链接,但它没有连接。在此之后,我尝试在一个新的Javaproject中打开我的链接,它正在连接。但我不明白为什么不在安卓系统中。我希望有人能帮助我 我要打开和连接的代码是: public class JSONTaskRegistrieren extends AsyncTask<String, String, String>{ private static final HostnameVerifier HostnameVeri

我尝试用Java for Android打开我的https链接,但它没有连接。在此之后,我尝试在一个新的Javaproject中打开我的链接,它正在连接。但我不明白为什么不在安卓系统中。我希望有人能帮助我

我要打开和连接的代码是:

public class JSONTaskRegistrieren extends AsyncTask<String, String, String>{

private static final HostnameVerifier HostnameVerifier = new NullHostnameVerifier();
private SSLSocketFactory socketfactory;

@Override
protected String doInBackground(String...params){

    String Servicepass;
    String SecretToken = null;


    BufferedReader reader = null;
    URL url;

    try{
        url = new URL(params[0]);
        this.socketfactory = HttpsURLConnection.getDefaultSSLSocketFactory();
        HttpsURLConnection.setDefaultHostnameVerifier((HostnameVerifier)  new NullHostnameVerifier());
        HttpsURLConnection con = (HttpsURLConnection)url.openConnection();

        con.setRequestMethod("GET");
        con.setRequestProperty("Accept",  "application/json");

        con.setRequestProperty("WWSVC-REQID",  "1");

        InputStream stream = con.getInputStream();
        reader = new BufferedReader(new InputStreamReader(stream));
        StringBuffer buffer = new StringBuffer();
        String output;

        while ((output = reader.readLine()) != null){
            buffer.append(output);
        }

        String finalJson = buffer.toString();
        //System.out.println(buffer.toString());

        JSONObject parentObject = new JSONObject(finalJson);
        JSONObject servicepassobjekt = parentObject.getJSONObject("SERVICEPASS");

        //System.out.println(servicepassobjekt.toString());
        StringBuffer finalBufferedData = new StringBuffer();

            JSONObject finalObject = servicepassobjekt;

            Servicepass = finalObject.getString("PASSID");
            SecretToken = finalObject.getString("APPID");

            return finalBufferedData.toString();

    } catch (MalformedURLException e) {
        e.printStackTrace();
     } catch (IOException e) {
        e.printStackTrace();
     } catch (JSONException e) {
       e.printStackTrace();
   }
    return null;
}

    @Override
    protected void onPostExecute(String result){
        super.onPostExecute(result);
        System.out.println(result);
    }

}   
堆栈跟踪:

06-09 05:36:52.470: E/AndroidRuntime(1864): FATAL EXCEPTION: main
06-09 05:36:52.470: E/AndroidRuntime(1864): Process: com.example.test, PID: 1864
06-09 05:36:52.470: E/AndroidRuntime(1864): java.lang.NullPointerException
06-09 05:36:52.470: E/AndroidRuntime(1864):     at com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at com.example.test.JSONTaskRegistrieren.onPostExecute(JSONTaskRegistrieren.java:86)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at com.example.test.JSONTaskRegistrieren.onPostExecute(JSONTaskRegistrieren.java:1)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at android.os.AsyncTask.finish(AsyncTask.java:632)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at android.os.AsyncTask.access$600(AsyncTask.java:177)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at android.os.Handler.dispatchMessage(Handler.java:102)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at android.os.Looper.loop(Looper.java:136)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at android.app.ActivityThread.main(ActivityThread.java:5017)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at java.lang.reflect.Method.invokeNative(Native Method)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at java.lang.reflect.Method.invoke(Method.java:515)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
06-09 05:36:52.470: E/AndroidRuntime(1864):     at dalvik.system.NativeStart.main(Native Method)

我知道这是NullPointerException,原因是他无法连接此URL,但我不知道原因。

不要使用
System.out.println
,而是
Log.v(“JSONTaskRegistrieren”,result)

并更改此部分,然后发布异常

} catch (MalformedURLException e) {
    Log.e("JSONTaskRegistrieren", "Error", e);
    e.printStackTrace();
 } catch (IOException e) {
    Log.e("JSONTaskRegistrieren", "Error", e);
    e.printStackTrace();
 } catch (JSONException e) {
    Log.e("JSONTaskRegistrieren", "Error", e);
   e.printStackTrace();

不要使用
System.out.println
,而是使用
Log.v(“JSONTaskRegistrieren”,result)

并更改此部分,然后发布异常

} catch (MalformedURLException e) {
    Log.e("JSONTaskRegistrieren", "Error", e);
    e.printStackTrace();
 } catch (IOException e) {
    Log.e("JSONTaskRegistrieren", "Error", e);
    e.printStackTrace();
 } catch (JSONException e) {
    Log.e("JSONTaskRegistrieren", "Error", e);
   e.printStackTrace();

有任何线索吗?超时,另一个例外?我想它是在服务器上的
https
url必须被签名。如果url未使用ssl证书签名,则有可能获得SSLHandshakeException。检查是否出现此异常。我已使用StackTrace进行编辑。是,https具有ssl证书。是否存在堆栈跟踪?超时,另一个例外?我想它是在服务器上的
https
url必须被签名。如果url未使用ssl证书签名,则有可能获得SSLHandshakeException。检查是否出现此异常。我已使用StackTrace进行编辑。是的,https有ssl证书。我已经做了,它来了
错误:140770FC:ssl例程:SSL23\u GET\u SERVER\u HELLO:unknown protocol(外部/openssl/ssl/s23\u clnt.c:766 0xa3886990:0x00000000)
。在此之后,我编辑了以下内容:
SSLSocketFactory ssf=ctxt.getSocketFactory();sslsocketsocket=(SSLSocket)ssf.createSocket(参数[0],443);socket.startHandshake();socket.close()现在只出现了一个没有消息的错误。我已经做到了,它出现了
错误:140770FC:SSL例程:SSL23\u GET\u SERVER\u HELLO:unknown protocol(外部/openssl/SSL/s23\u clnt.c:766 0xa3886990:0x00000000)
。在此之后,我编辑了以下内容:
SSLSocketFactory ssf=ctxt.getSocketFactory();sslsocketsocket=(SSLSocket)ssf.createSocket(参数[0],443);socket.startHandshake();socket.close()现在只出现一个错误,没有消息。