终结Oreilly的《Java网络编程》-UDP包与URLConnection(部分)[5]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

getInputStream(),getContent(),getHeaderField()等方法在没有打开连接的情况下会自己调用connect()方法,所以用户很少自己调用connect();

 

你发现用Socket连接到HTTP服务器的时候,总是得先给它发送一个正规的HTTP请求,它才有反应;而URLConnection一旦得到一个InputStream()就好了,数据已经到了,

这说明URLConnection和浏览器一样贱!

 

getInputStream()得到的一个输入流里只有数据部分,没有什么头啊首部之类的;

但是我们可以用别的方法来获得   

读首部

Public String getContentType()

 

Public String getContentLength()  我们可以用这样的办法下载文本文件:

                                                        Int c;

                                                        While((c=in.read())!=-1)

                                                               …….

                                                 理论上虽然也可以用同样的办法下载二进制文件,但是因为HTTP服务器总不会总是在用户需要的时候就关闭连接并且发送一个 EOF字符到用户,因此,用户并不知道什么时候读操作结束;更可靠的办法是用getContentLength()先找到文件的长度,然后读出length个字节;

比如这样读:

本文关键:终结Oreilly的《Java网络编程》-UDP包与URLConnection(部分)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top