httpsURLConnection.getInputStream() 挂起
我尝试为 android 构建一个 https 客户端,并且我需要获取 Servlet 的一些请求 但是当我使用 getInputStream 方法时,应用程序挂起。
仅当我调用该方法时才挂起,没有错误。
String url = "https://.../Servlet";
try {
mPushLiteConnection = (HttpsURLConnection) new URL(url).openConnection();
mPushLiteConnection.setDoOutput(true);
mPushLiteConnection.setDoInput(true);
mPushLiteConnection.setRequestMethod("POST");
mPushLiteConnection.connect();
subscribe();
InputStream in = (InputStream)mPushLiteConnection.getInputStream();
unsubscribe();
mPushLiteConnection.disconnect();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
这只是为了检查呼叫,但它不起作用。 知道为什么它挂起并且什么也不告诉我吗?
订阅方法有效,当我用输入流注释掉该行时,服务器显示一切都是正确的。 我可以用 Firefox 尝试同样的操作,它可以工作,我可以看到请求。
我还将密钥库放入 TrustManager 中。
抱歉我的英语我希望我能解释得足够多。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我想我知道原因了!
getInputStream() 方法需要(为什么)contentLength!
在我想要连接的 servlet 中没有 contentLength 因为它是一个推送分块 servlet...它发送所有没有长度的 XML 片段。
所以.. HttpsURLConnection 对于分块来说没有用!
现在我尝试与 httpClient 进行相同的连接
我希望它能起作用......如果没有:我跳到公共汽车后面;)
I think i know the reason!
the method getInputStream() needs (why ever) the contentLength!
In the servlet i want to connect to is no contentLength couse it is an push chunked servlet... it sends all the time pieces of XML without length.
So.. HttpsURLConnection are not usefull for chunked!
Now i try the same connection with httpClient
i hope it works for it... if not: i jump behind the bus ;)
我使用不同的线程
是的,我在客户端安装了证书,
我有第二个连接来从另一个 servlet 加载列表,它工作正常,但我不需要输入流,只需要一个 SAX 解析器。
但我不能对这个 servlet 使用 SAX 解析器,因为我没有得到 XML,只有 XML 标签,没有开始文档标签,
也许你知道如何忽略开始文档标签?我不确定 SAX 是否需要它
i use a different Thread
and yes i installed the certificate on the client side
i have a second connection to load a list from another servlet and it works fine, but i dont need a InputStream for it only a SAX Parser.
But i cant use the SAX Parser for this servlet, couse i dont get an XML, only XML Tags without the Start Document Tag
maybie you know how to ignore the Start Document tag? I am not sure if i need it for SAX