HTTP请求:
HTTP请求由三个组件组成:
请求标头
实体主体
?
每个HTTP请求都可以使用HTTP标准中指定的其中一个请求的方法。HTTP1.1支持7类请求:GET、POST、HEAD、OPTIONS、PUT、DELETE和TRACE。GET和POST在互联网应用中最为常用。
请求标头包含有关客户端环境和请求实体主体的有用信息。每个标头都用一个回车/换行符(CRLF)进行分隔,这对于HTTP请求格式而言很重要。CRLF告诉HTTP服务器,实体主体从这里开始,在有的互联网编程书籍中,这个CRLF会被当作一个HTTP请求的第4个组件。
HTTP响应:
HTTP响应由三个组件组成:
协议——状态吗——描述
响应标头
实体主体
?
用java.net.URL对象可以表示URL,其构造器包含协议,主机,端口,路径,可以通过getFile(),getHost(),getPath(),getPort(),getProtocol(),getQuery()等方法来获取相应的参数信息。
通过URL.openStream()可以读取一个web资源,但也可以URL.openConnection()来获得URLConnection实例,即获取一个与远程计算机连接的对象,可以通过该对象对一台远程机器进行读取或写入资源。
URLConnection类有2个boolean域:doInput和doOutput,分别表示URLConnection是否可以用来读取和写入。doInput的默认值是true,表示始终可以利用URLConnection读取一个web资源,doOutput的默认值是false,表示URLConnection不能写入,为了能够用URLConnection对象进行写入,需要将doOutput的值设置为true。为doInput和doOutput设置值的时候,可利用setDoInput和setDoOutput方法完成。
利用URLConnection对象读取资源时,可调用他的getInputStream方法,该方法返回java.io.InputStream对象。写入资源时,可调用他的getOutputStream方法,该方法返回java.io.OutputStream。
URLConnection比URL.openStream更强大,还可以读取响应标头,并把数据写入服务器。
?
虽然可以利用URLConnection提交信息,但是可利用更加强大的java.net.Socket和java.net.ServerSocket类。
?