`

J2ME Connector HTTPConnection 内容格式 chunked

    博客分类:
  • Java
阅读更多
最近学J2ME,遇到一个问题:
使用Connector.open方法POST方式连接网站,HTTP内容需要包含一些查询条件。地址为URL,查询条件为query。有两种方式
1.
HTTPConnection http = (HTTPConenction)Connector.open(URL+"?"+query);

2.
HTTPConnection http = (HTTPConenction)Connector.open(URL);
OutputStream out = http.openOutputStream();
out.write(data);
out.flush();

第一种方法会在提示是否连接时显示所有的查询语句,用户体验不好。第二种会把查询语句放在HTTP内容中,但是会使用chunked格式,HTTP头中没有Content-Length。但是服务器解析需要Content-Length。这让我郁闷了很久,找了API,始终找不到解决办法,结果偶然把//out.flush();这行语句注释了,发现就可以了,不是chunked格式了。不知道为什么?
分享到:
评论
1 楼 clarketang 2010-09-06  
原因是flush方法即使在缓冲区中没有满的情况下,也会将缓冲区内的内容强制写到外设,因此在使用flush()方法时,发出的数据包就无法确定长度,这时底层自动使用chunked编码,就不会有"Content-Length"这个头域

相关推荐

Global site tag (gtag.js) - Google Analytics