Http协议[Get和Post]详解
(2012-11-27 11:23:26)
访问url,需要连接网络。所以,首先应该添加Manifest权限:
<uses-permission android:name="android.permission.INTERNET"/>
1.Get请求(核心代码)
private String baseUrl="http://192.168.1.100:8080/serverside/name"; private String name,age; //代表用户输入的请求内容 private HttpResponse httpResponse; private HttpEntity httpEntity; private InputStream inputStream; public void onClick(View v){ //此处的name+age,作为数据发送 String url=baseUrl+"?"+"name="+name+"&"+"age="+age; //生成一个请求对象 HttpGet httpGet=new HttpGet(url); //生成一个http客户端对象 HttpClient httpClient=new DefaultHttpClient(); //使用客户端发送请求对象 try { //接收服务器返回的响应 httpResponse=httpClient.execute(httpGet); //获取响应的内容 httpEntity=httpResponse.getEntity(); //将内容写入流中 inputStream=httpEntity.getContent(); //InputStreamReader是字节流到字符流的桥梁,将字节流转换为字符流存入缓冲区BufferedReader中 BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream)); String result=""; String line=""; //每次读取一行数据 while((line=bufferedReader.readLine()) != null){ result=result+line; } //输出服务器返回的内容 System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } |
2、POST请求(核心代码)
private String baseUrl="http://192.168.1.100:8080/serverside/name"; private String name,age; private HttpResponse httpResponse; private HttpEntity httpEntity; private InputStream inputStream; public void onClick(View v){ //把请求的数据,添加到NameValuePair中 NameValuePair nameValuePair1=new BasicNameValuePair("name", name); NameValuePair nameValuePair2=new BasicNameValuePair("age", age); //将其添加到list列表中 List list=new ArrayList(); list.add(nameValuePair1); list.add(nameValuePair2); try { //将列表添加到HttpEntity中 HttpEntity requesthttpEntity=new UrlEncodedFormEntity(list); //生成一个请求对象 HttpPost httpPost=new HttpPost(baseUrl); //httpPost设置Entity ==把数据添加到了httpPost中 httpPost.setEntity(requesthttpEntity); //生成一个http客户端对象 HttpClient httpClient=new DefaultHttpClient(); httpResponse=httpClient.execute(httpPost); httpEntity=httpResponse.getEntity(); inputStream=httpEntity.getContent(); BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream)); String result=""; String line=""; while((line=bufferedReader.readLine()) != null){ result=result+line; } System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } |
3.总结
---Android中,用GET和POST访问http资源--- ·字节,而POST则没有此限制 两种方法,只是传送数据的方式不同。根据不同的服务器规定的请求访问方式,灵活的运行Get和Post。 |
最新文章
- H5之contenteditable
- H5游戏开发之抓住小恐龙
- SQL 执行计划(二)
- Codevs 5208 求乘方取模
- HDU-2527 Safe Or Unsafe
- POJ 2418 Hardwood Species( AVL-Tree )
- jQuery中animate动画第二次点击事件没反应
- option触发事件两种方法总结
- UE4中的单映射:TMap容器
- 深入剖析java迭代器以及C#迭代器!
- vue.js--遇到的一些错误
- 『转载』hadoop2.x常用端口、定义方法及默认端口
- JTA 使用 MySQL 分布式事务
- 关于JSONP以及跨域相关
- libjson 编译和使用 - 2. 配置使用lib文件
- monkey基础学习
- 问题:alias设置与删除
- unity, editorWindow update计时
- OpenCL学习笔记(一):摩尔定律,异构计算与OpenCL初印象
- @MySQL为表字段添加索引