java.net.HttpURLConnection类是另外一种访问HTTP资源的方式.HttpURLConnection类具有完全的访问能力,可以取代HttpGet类和HttpPost类.使用HttpUrlConnection访问HTTP资源可以使用如下六步:
(1)使用java.net.URL封装HTTP资源的url,并使用openConnection方法获得HttpUrl Connection对象 ,代码如下:
URL url = new URL(http://www.blogjava.net/nokiaguy/archive/2009/12/14/305890.html);
HttpURLConnection httpURLConnection = (HttpURLConnecton) url.openConnection();
(2)设置请求方法,例如GET,POST等,代码如下:
httpURLConnection.setRequestMethod("POST");
要注意的是,setRequestMethod方法的参数值必须大写,例如GET,POST等.
(3)设置输入输出及其他权限.如果要下载HTTP资源或向服务端上传数据,需要使用如下代码进行设置.
下载HTTP资源,需要将setDoInput方法的参数值设为true
httpURLConnection.setDoInput(true);
httpURLConnection.setDoOutput(true);
HttpURLConnection类还包含更多的选项,例如,使用下面的代码可以禁止HttpURLConnection使用缓存.
httpURLConnection.setUseCaches(false);
(4)设置 http请求头 .在很多情况下,要根据实际情况设置一些HTTP请求头,例如下面的代码设置了Charset请求头的值为UTF-8.
httpURLConnection.setRequestProperty("Charset","UTF-8");
(5)输入和输出数据.这一步是对HTTP资源的读写操作.也就是通过InputStream和OutputStream读取和写入数据.下面的代码获得了InputStream对象和OutputStream对象.
InputStream is = httpURLConnection.getInputStream();
OutputStream os = httpURLConnection.getOutputStream();
至于是读取还是先写入数据,需要根据具体情况而定.
(6)关闭输入和输出流.虽然关闭输入输出流并不是必需的,在应用程序结束后,输入输出流会自动关闭,但显示关闭输入输出流是一个好习惯.关闭输入输出流的代码如下:
is.close();
os.close();