2012-06-22 3 views
2

HTTPS를 통해 서버에 POST 요청을 보내려고 할 때 NullPointerException이 발생합니다. 이것은 자체 서명 인증서가 아닙니다 (CheapSSLs 발행). 다음과 같이HttpsURLConnection 및 SSL을 사용한 NullPointerException

06-21 18:52:37.757: E/AndroidRuntime(17985): FATAL EXCEPTION: AsyncTask #1 
06-21 18:52:37.757: E/AndroidRuntime(17985): java.lang.RuntimeException: An error occured while executing doInBackground() 
06-21 18:52:37.757: E/AndroidRuntime(17985): at android.os.AsyncTask$3.done(AsyncTask.java:200) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at java.util.concurrent.FutureTask.setException(FutureTask.java:125) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at java.util.concurrent.FutureTask.run(FutureTask.java:138) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at java.lang.Thread.run(Thread.java:1019) 
06-21 18:52:37.757: E/AndroidRuntime(17985): Caused by: java.lang.NullPointerException 
06-21 18:52:37.757: E/AndroidRuntime(17985): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:433) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeConnection(HttpsURLConnectionImpl.java:378) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:205) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:614) 
06-21 18:52:37.757: E/AndroidRuntime(17985): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:268) 

내 코드는 다음과 같습니다 :

URL url = new URL(mUrl); 
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("192.168.1.134", 8888)); 
HttpsURLConnection urlConnection = (HttpsURLConnection) url.openConnection(proxy); 

urlConnection.setRequestMethod("POST"); 
urlConnection.setDoInput(true); 
urlConnection.setDoOutput(true); 

MultipartBodyBuilder builder = new MultipartBodyBuilder(); 
builder.build(params); 

urlConnection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + builder.mBoundary); 
urlConnection.setFixedLengthStreamingMode(builder.getContentLength()); 

DataOutputStream out = new DataOutputStream(new BufferedOutputStream(urlConnection.getOutputStream())); 

코드는로 getOutputStream에 충돌

내가 수신하고있는 오류입니다.

도움을 주시면 감사하겠습니다.

+4

프록시없이 작동합니까? –

+0

예 방금 시도했습니다. 바보 나. 고마워. 하하. 그렇게 생각하지 않고 너무 많은 시간을 보냈습니다. – PolandSpring

+0

그건 그렇고, 당신은 제목에 "(안드로이드)"를 포함시킬 필요가 없습니다 ... [안드로이드] 아래 질문에 태그를 붙이는 것만으로 충분합니다 :). –

답변

2

proxy 개체를 믹스에 포함하지 않고 시도하십시오 ... HttpsConnection으로 작업을 완료하는 데 충분해야합니다.

관련 문제