遇到问题
1. java.io.IOException: unexpected end of stream on Connection
问题: 服务器端,关闭了连接。
解决办法:a) 在Http请求头增加参数:addHeader("Connection", "close")
在http1.1中request和reponse header中都有可能出现一个connection头字段,此header的含义是当client和server通信时对于长链接如何进行处理。
在http1.1中,client和server都是默认对方支持长链接的, 如果client使用http1.1协议,但又不希望使用长链接,则需要在header中指明connection的值为close;如果server方也不想支持长链接,则在response中也需要明确说明connection的值为close.
不论request还是response的header中包含了值为close的connection,都表明当前正在使用的tcp链接在请求处理完毕后会被断掉。以后client再进行新的请求时就必须创建新的tcp链接了。 HTTP Connection的 close设置允许客户端或服务器中任何一方关闭底层的连接双方都会要求在处理请求后关闭它们的TCP连接。
b ) 连接设置: urlConnect.setRequestProperty("Connection", "close");
以上两个都建议在13以上加。
if (Build.VERSION.SDK !=null && Build.VERSION.SDK_INT >13) { request.addHeader("Connection","close");}