(2012-11-27 11:23:26)

标签:

android

http

get

post

mars

分类: Android系列

访问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。

Http协议[Get和Post]详解的更多相关文章

  1. HTTP协议 (六) 状态码详解

    HTTP协议 (六) 状态码详解 HTTP状态码,我都是现查现用. 我以前记得几个常用的状态码,比如200,302,304,404, 503. 一般来说我也只需要了解这些常用的状态码就可以了.  如果 ...

  2. SSL协议之数据加密过程详解

    前言 总括: 原文博客地址:SSL协议之数据加密过程详解 知乎专栏&&简书专题:前端进击者(知乎)&&前端进击者(简书) 博主博客地址:Damonare的个人博客 生活 ...

  3. 第8章 应用协议 图解TCP/IP 详解

    第8章 应用协议 图解TCP/IP 详解 8.1 应用层协议概要 应用层协议的定义 TCP和IP等下层协议是不依赖上层应用类型.实用性非常广的协议.而应用协议则是为了实现某种应用而设计和创造的协议. ...

  4. TCP协议粘包问题详解

    TCP协议粘包问题详解 前言 在本章节中,我们将探讨TCP协议基于流式传输的最大一个问题,即粘包问题.本章主要介绍TCP粘包的原理与其三种解决粘包的方案.并且还会介绍为什么UDP协议不会产生粘包. 基 ...

  5. HTTP协议缓存策略深入详解之ETAG妙用

    Etag是什么: Etag 是URL的Entity Tag,用于标示URL对象是否改变,区分不同语言和Session等等.具体内部含义是使服务器控制的,就像Cookie那样. HTTP协议规格说明定义 ...

  6. 安全超文本传输协议(HTTPS)详解

    一.概念与摘要 HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息.它使 ...

  7. HTTP协议的头信息详解

    转载地址:http://blog.csdn.net/guoguo1980/article/details/2649658 HTTP(HyperTextTransferProtocol)是超文本传输协议 ...

  8. 转: HTTP协议的头信息详解

    通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息.这两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可 选的消息体组成.HTTP的头域包括通用头,请求头,响 ...

  9. 网络编辑基础:对HTTP协议的头信息详解

    HTTP(HyperTextTransferProtocol) 是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参 考RFC2616.HTTP协议采用了请求/响应模型 ...

  10. FTP协议及工作原理详解

    1. FTP协议 什么是FTP呢?FTP 是 TCP/IP 协议组中的协议之一,是英文File Transfer Protocol的缩写. 该协议是Internet文件传送的基础,它由一系列规格说明文 ...

随机推荐

  1. JAVA编写WEB服务器

    一.超文本传输协议  1.1 HTTP请求  1.2 HTTP应答  二.Socket类  三.ServerSocket类  四.Web服务器实例  4.1 HttpServer类  4.2 Requ ...

  2. C#中的委托,匿名方法和Lambda表达式

    简介 在.NET中,委托,匿名方法和Lambda表达式很容易发生混淆.我想下面的代码能证实这点.下面哪一个First会被编译?哪一个会返回我们需要的结果?即Customer.ID=.答案是6个Firs ...

  3. powerdesigner中怎么给一主键设为自增型auto increme

    在使用powerdesigner 设计数据库表时,通常要对主键进行设置,如果主键是int 类型,一般会设置成自增,那么怎么在 powerdesigner 中设置呢,以下是具体的方法: 在所要设为自增型 ...

  4. rsync安装使用

    安装 yum install rsync mkdir /etc/rsyncd cd /etc/rsyncd vi rsyncd.conf pid file = /var/run/rsyncd.pid ...

  5. WPF学习系列之八(形状,画刷和变换)

    形状,画刷和变换   概述: 在许多用户界面技术中,普通控件和自定义绘图之间具有清晰的区别.通常来说,绘图特性只用于特定的应用程序--如游戏,数据可视化和物理仿真等.而WPF具有一个非常不同的原则.它 ...

  6. WPF学习系列之六 (元素绑定)

    元素绑定 简单地说,数据绑定是一种关系,该关系告诉WPF从一个源对象提取一些信息,并使用这些信息设置目标对象的属性.目标属性总是依赖属性,并且通常位于WPF元素中. 一.将元素绑定到一起 <Wi ...

  7. Mongodb解决不能连接到服务器的错误

    注:这次解决的这个问题的前提是之前打开MongoDB之后,再次使用的时候无法连接了(使用mongod和mongo都不对) 闲话:遇到这种问题真是让人恼火,所以说句sun of beach,好了~爽 正 ...

  8. SVN与TortoiseSVN实战:属性的奇技淫巧(一)

    硬广:<SVN与TortoiseSVN实战>系列已经写了六篇,本系列结合TortoiseSVN对SVN中容易被忽视的部分进行了详解,预计再用三.四篇来结束这个系列. 本篇详解一下SVN的属 ...

  9. Dynamics AX 4.0 多表looup

    project rar:http://files.cnblogs.com/files/sxypeace/PrivateProject_MutilTableLookupOnCtronl.rar 在AX ...

  10. Linux下多线程编程

    一.为什么要引入线程? 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式.在Linux系统下,启动一个新的进程必须分配给它独立的地址空间,建立众多的数据表来维 ...