博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android之Http使用简介
阅读量:2194 次
发布时间:2019-05-02

本文共 2952 字,大约阅读时间需要 9 分钟。

我们做android开发免不了要向后台服务器获得数据,一般情况下,都是使用http协议进行获取。

1、什么是http协议:

简单来说,我们上网在浏览器地址栏输入地址相当于告诉浏览器(客户端)我要浏览哪个网页,浏览器根据你输入的地址里获取你要访问的具体服务器及内容并显示出来。Http协议就是一个规范,客户端和服务器端都认同的规范,客户端根据这个规范把要请求的数据按照一定格式组织好发送出去。而服务器在客户端的请求后,根据请求里的要求把相应的内容返回给客户端。做个比喻,你网上买车票,你肯定要填写相应的出发地,到达地,出发时间等信息,然后卖票的系统根据你填写的信息给你相应的车票。http协议就像你填信息的那个单子,那个单子你(客户端)会填写,卖票的系统(服务器)也读得懂。这个单子就相当于你跟卖票系统之间的规范。

2、如何使用

我们这里主讲向服务器请求数据的get方法和向服务器提交数据的post方法。现在看具体代码

get方法会把请求的一些参数放在url里如 ,该url后的 就是信息参数多个参数之间用&连接如?wd=TChengZ&id=1。

public void get(){          BufferedReader in = null;            try{              HttpClient client = new DefaultHttpClient();              HttpGet request = new HttpGet("http://www.baidu.com/s?wd=TChengZ");               HttpResponse response = client.execute(request);              HttpEntity httpEntity = response.getEntity();              in = new BufferedReader(new InputStreamReader(httpEntity.getContent()));                 StringBuffer sb = new StringBuffer("");               String line = "";              String NL = System.getProperty("line.separator");              while((line = in.readLine()) != null){                  sb.append(line + NL);              }              in.close();              String page = sb.toString();                Log.i(TAG, page);          }catch(Exception e){              Log.e(TAG,e.toString())          }finally{              if(in != null){                  try{                      in.close();                  }catch(IOException ioe){                      Log.e(TAG, ioe.toString());                  }              }          }      }
post方法则会将信息参数放在内容中:

public void post(){          BufferedReader in = null;            try{ 	    NameValuePair nameValuePair = new BasicNameValuePair("wd", "TChengZ");	    List
postParams = new List
(); postParams.add(nameValuePair); //设置信息,不止一个信息就多几个NameValuePair并放到该list HttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost("http://www.baidu.com/s"); HttpEntity entity = new UrlEncodeFormEntity(postParams); post.setEntity(entity);//将信息放到post数据内容里 HttpResponse response = client.execute(request); //发送post数据并得到返回数据 in = new BufferedReader(new InputStreamReader(response.getEntity().getContent())); StringBuffer sb = new StringBuffer(""); String line = ""; String NL = System.getProperty("line.separator"); while((line = in.readLine()) != null){ sb.append(line + NL); } in.close(); String result = sb.toString(); Log.i(TAG, result ); }catch(Exception e){ Log.e(TAG,e.toString()) }finally{ if(in != null){ try{ in.close(); }catch(IOException ioe){ Log.e(TAG, ioe.toString()); } } }

转载地址:http://bfsub.baihongyu.com/

你可能感兴趣的文章
后端技术杂谈4:Elasticsearch与solr入门实践
查看>>
后端技术杂谈5:云计算的前世今生
查看>>
后端技术杂谈6:白话虚拟化技术
查看>>
后端技术杂谈7:OpenStack的基石KVM
查看>>
后端技术杂谈8:OpenStack架构设计
查看>>
后端技术杂谈9:先搞懂Docker核心概念吧
查看>>
后端技术杂谈10:Docker 核心技术与实现原理
查看>>
夯实Java基础系列2:Java自动拆装箱里隐藏的秘密
查看>>
夯实Java基础系列1:Java面向对象三大特性(基础篇)
查看>>
夯实Java基础系列3:一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!
查看>>
夯实Java基础系列4:一文了解final关键字的特性、使用方法,以及实现原理
查看>>
Java 未来行情到底如何,来看看各界人士是怎么说的
查看>>
IntelliJ 平台 2020 年路线图
查看>>
走进JavaWeb技术世界8:浅析Tomcat9请求处理流程与启动部署过程
查看>>
微软宣布加入 OpenJDK,打不过就改变 Java 未来!
查看>>
MyBatis动态SQL(认真看看, 以后写SQL就爽多了)
查看>>
为什么强烈推荐 Java 程序员使用 Google Guava 编程!
查看>>
先搞清楚这些问题,简历上再写你熟悉Java!
查看>>
【数据库】关系数据库和非关系数据库的优缺点
查看>>
【数据结构】动态顺序表
查看>>