android - 带有 HttpsURLConnection 和 SSL 的 NullPointerException

标签 android ssl httpsurlconnection

尝试通过 HTTPS 向服务器发送 POST 请求时收到 NullPointerException。这不是自签名证书(由 CheapSSLs 颁发)。

这是我收到的错误:

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 上崩溃。

任何帮助将不胜感激。

最佳答案

尝试一下,不要在混合中包含 proxy 对象...HttpsConnection 应该足以完成工作。

关于android - 带有 HttpsURLConnection 和 SSL 的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11150113/

相关文章:

javascript - 使用带有路径 url 的 SSL 上的 D3 请求 (json) 会出现混合内容错误?

java - 服务器不支持 Android 5.0 的默认密码套件

java - Android 单选按钮自定义属性

android - 将富编辑文本保存到数据库

java - 法线发生了变化,但光照仍然很奇怪?

asp.net - 在重定向到 web.config 中的 www 子域期间在域根上添加 HSTS http header

android - 验证 android inapp 购买后谷歌发送的订单 ID

android - 将根证书添加到 Android 操作系统

Android使用数据传输协议(protocol)http或https

java - 通过httpsURLConnection登录,如何知道是否成功