Android使用Http协议访问网络

来源:互联网 发布:淘宝默认发票抬头 编辑:程序博客网 时间:2024/05/22 03:37

在android上发送Http请求的方式一般有两种,HttpURLConnection和HttpClient。

一、HttpURLConnection

一般有以下步骤:
先将字符串地址传入URL对象,再用URL对象打开一个HttpURLConnection对象,然后对HttpURLConnection对象设置请求方式(GET or POST),链接时间等等操作,连接后有断开链接操作。代码步骤如下:

URL url = new URL("http://www.baidu.com");HttpURLConnection conn = url.openConnection();conn.setResquestMethod("GET");//conn.setResquestMethod("POST");conn.setConnectTimeout(8000);conn.setReadTimeout(8000);

当HttpURLConnection对象获取到服务器返回的数据的处理步骤:

InputStream in = conn.getInputStream();BufferReader reader = new BufferReader(new InputStreamReader(in));StringBuilder sb = new StringBuilder();String str = null;while((str=reader.readLine())!=null){    sb.append(str);}

再将得到的数据转换为字符串类型:sb.toString();

当我们要将数据发送给服务器端的时候,设置请求方式为POST
conn.setResquestMethod(“POST”);
当HttpURLConnection对象要向服务器发送的数据的处理步骤:

DataOutputStream out = new DataOutputStream(conn.getOutputStream());out.writeBytes("username=admin&password=123456");

二、HttpClient

使用HttpClient要先导入它的包,网上有的下载,自行查找。HttpClient也是一样,都有GET or POST 请求。首先HttpClient是一个接口,不能创建它的实例,所以通常情况下我们会new一个DefaultHttpClient的实例;接着设置它的请求(GET),就要创建一个HttpGet对象,往对象里传入网络地址;最后用刚刚实例的DefaultHttpClient去执行execute这个HttpGet对象。代码如下:
HttpClient 连接的建立

HttpClient httpClient = new DefaultHttpClient();HttpGet httpGet = new HttpGet("http://www.baidu.com");//HttpPost httpPost = new HttpPost("http://www.baidu.com");httpClient.execute(httpGet);//httpClient.execute(httpPost);

连接建立后数据的获取:
1、GET数据的获取:先判断数据是否获取成功,成功返回值为200
HttpResponse:httpClient.execute(httpGet)执行后的返回对象

if(httpResponse.getStatusLine().getStatusCode()==200){    HttpEntity entity = httpResponse.getEntity();    String response = EntityUtils.toString(entity,"utf-8");}

2、POST数据的发送:
定义一个NameValuePair的集合,把BasicNameValuePair类型的值传入这个集合中,再将这个集合转换为entity类型,并支持“utf-8”格式。
最后在httpPost.setEntity(entity)。

List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("usename","admin"));params.add(new BasicNameValuePair("password","123456"));UrlEncodedFormEntity entity = new UrlEncodedFormEntity (params,"utf-8");httpPost.setEntity(entity);
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新娘裙太长怎么办请茶 花无缺逾期20天怎么办 酷云密码忘了怎么办 我的声音不好听怎么办 耳朵后面长了个硬包怎么办 汽车油表不动了怎么办 油位传感器坏了怎么办 孕妇牙疼耳朵疼怎么办 耳机戴的耳朵疼怎么办 擤鼻涕左耳朵疼怎么办 擤完鼻涕耳朵疼怎么办 五岁儿童耳朵疼怎么办 耳朵里面长了个硬包怎么办 耳朵里有耳屎响怎么办 耳屎粘在耳膜上怎么办 小孩脖子上有淋巴结怎么办 大腿内侧的筋疼怎么办 大腿内侧磨的疼怎么办 孕晚期大腿根疼怎么办 吞口水耳朵会响怎么办 耳朵里面老痒该怎么办 牙疼头疼耳朵疼怎么办 耳朵里流水还疼怎么办 单侧耳朵里面疼怎么办 打到睾丸很疼怎么办 大拇手指关节疼怎么办 早上醒来耳朵嗡嗡响怎么办 两个月宝宝起湿疹怎么办 运动时耳朵闷堵怎么办 刚打的耳洞红肿怎么办 耳洞好了又肿了怎么办 耳洞发炎流血了怎么办 脸上出油怎么办小窍门 耳洞发炎化脓了怎么办 狗狗耳朵化脓了怎么办 狗狗耳朵破了怎么办 泰迪肛门腺发炎怎么办 狗狗肛门腺发炎怎么办 狗狗耳朵受伤了怎么办 狗狗的耳朵发热怎么办 头疼带的耳朵疼怎么办