您的位置:首页 > 理论基础 > 计算机网络

Android中HttpURLConnection的基础

2015-08-23 21:19 555 查看
HttpURLConnection介绍:

HttpURLConnection是URLConnection的子类,所以同样能为URL指定的网站发送Get或Post请求。另外,该类增加了Http协议,所以功能更完善。并且它在URLConnection的基础上增加了一些更实用的方法:

(1)int getResponseCode(); //获得服务器的响应代码

(2)String getResponseMessage(); //获取服务器的响应消息

(3)String getRequestMethod(); //获取发送请示的方法

(4)void setRequestMethod(String method); //设置发送请求的方法

使得访问Http服务器时,使用HttpURLConnection比使用URLConnection方便的多。

在HttpURLConnection中,请求的类别分为二类,GET和POST请求。两者的区别在于:

(1)get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet;

(2)post与get的不同之处在于post的参数不是放在URL字串里面,而是放在输出流中。

get和post访问的步骤如下:

GET方式请求:

1.创建URL对象,URL中要可包含请求参数

URL url = new URL(“http://服务器IP地址:端口号/项目名/test.do?name=”范杰”&age=18);

2.创建HttpURLConnection对象,打开与URL之间的连接

HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();

3.设置请求方式为GET

conn.setRequestMethod(“GET”);

4.得到输入流,通过输入流得到服务器的响应数据

InputStream in = conn.getInputStream();

Get请求示例代码:





POST方式请求:

1.创建URL对象,URL中不带参数

URL url = new URL(“http://服务器端IP地址:端口号/项目名/test.do”);

2.创建HttpURLConnection对象,打开与URL之间的连接

HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();

3.设置请求方式为POST

conn.setRequestMethod(“POST”);

4.发送POST请求必须设置如下两行:

conn.setDoOutput(true);

conn.setDoInput(true);

5.获得URLConnection对象的输出流

PrintWriter out = new PrintWriter(conn.getOutputStream()) ;

6.通过输出流,发送请求参数

out.print(“name=fanjie&age=18”);

out.flush();

7.获得数据输入流,然后可以通过输入流得到相应数据了

InputStream in = conn.getInputStream();

Post请求示例代码:





注意:

1.子线程中不能修改界面,只能在主线程中修改界面。另外,一个线程对象只能开一次子线程。

2.在Android4.0后所有网络方面的操作都不能再使用主线程,而变成了在获取网页响应字符串时本文代码使用了Thread,在下载图片时使用了AsyncTask,可以对比其使用的异同。很明显,AsyncTask更加方便。可以在onPreExecute和onPostExecute方法里很方便的做主线程UI以前做的事。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: