`

一种更灵活的数据传输方式:HTTP(1)

 
阅读更多
    使用WebService虽然可以很容易地传递数据,但也会受到很多限制,例如,由于WebService使用了XML格式传输数据,因此,在传递二进数据时必须将数据进行编码才能进行传递。这样将会使数据量明显增大,而且还会面临不同的WebService引擎不兼容的问题。 一种更灵活的数据传输方式:HTTP。虽然WebService也是通过HTTP进行传输的,但对用户却是透明的。而通过HTTP可以直接来控制传输的过程。

    HTTP是Internet中广泛使用的协议。几乎所有的语言和SDK都会不同程度地支持HTTP, 例如,HttpURLConnection、HttpGet、HttpPost等。

    提交HTTP GET和HTTP POST请求

    首先要介绍一下OPhone SDK集成的Apache HttpClient模块。要注意的是,这里的Apache HttpClient模块是HttpClient 4.0(org.apache.http.*),而不是Jakarta Commons HttpClient 3.x(org.apache.commons.httpclient.*)。
在HttpClient模块中涉及到了两个重要的类:HttpGet和HttpPost。这两个类分别用来提交HTTP GET和HTTP POST请求.

    现在我们要通过HttpGet和HttpPost向QueryServlet提交请求信息,服务器端代码详见地址:http://blog.csdn.net/lego2816/article/details/6691811
并将返回结果显示在TextView组件中。无论是使用HttpGet,还是使用HttpPost,都必须通过如下3步来访问HTTP资源。

    1.创建HttpGet或HttpPost对象,将要请求的Url通过构造方法传入HttpGet或HttpPost对象。

    2.使用DefaultHttpClient类的execute方法发送HTTP GET或HTTP POST请求,并返回HttpResponse对象。

    3.通过HttpResponse接口的getEntity方法返回响应信息,并进行相应的处理。
如果使用HttpPost方法提交HTTP POST请求,还需要使用HttpPost类的setEntity方法设置请求参数。

    测试代码块如下:
 String url = "http://192.168.17.82:8080/querybooks/QueryServlet";  
 HttpResponse httpResponse = null;  
 //  提交HTTP GET请求  
 //  向url添加请求参数  
  url += "?bookname= 乔布斯自传";
 //  第1步:创建HttpGet对象  
  HttpGet httpGet = new HttpGet(url);  
 //  第2步:使用execute方法发送HTTP GET请求,并返回HttpResponse对象  
 httpResponse = new DefaultHttpClient().execute(httpGet);  
 //  判断请求响应状态码,状态码为200表示服务端成功响应了客户端的请求  
 if (httpResponse.getStatusLine().getStatusCode() == 200)  
 {  
    //  第3步:使用getEntity方法获得返回结果  
     String result = EntityUtils.toString(httpResponse.getEntity());  
    //  去掉返回结果中的“\r”字符,否则会在结果字符串后面显示一个小方格  
    // tvQueryResult.setText(result.replaceAll("\r", ""));  
 }  


 //  提交HTTP POST请求  
 //  第1步:创建HttpPost对象  
  HttpPost httpPost = new HttpPost(url);  
 //  设置HTTP POST请求参数必须用NameValuePair对象  
 List<NameValuePair> params = new ArrayList<NameValuePair>();  
 params.add(new BasicNameValuePair("bookname", "乔布斯自传"));  
 //  设置HTTP POST请求参数  
 httpPost.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));  
 //  第2步:使用execute方法发送HTTP POST请求,并返回HttpResponse对象  
 httpResponse = new DefaultHttpClient().execute(httpPost);  
 if (httpResponse.getStatusLine().getStatusCode() == 200)  
 {  
      //  第3步:使用getEntity方法获得返回结果  
 String result = EntityUtils.toString(httpResponse.getEntity());  
 //  去掉返回结果中的“\r”字符,否则会在结果字符串后面显示一个小方格  
 // tvQueryResult.setText(result.replaceAll("\r", ""));  
 }  
   


分享到:
评论

相关推荐

    应用系统之间的几种数据传输方式

    ### 应用系统之间的几种数据传输方式 #### 一、数据传输方式概述 随着SOA(面向服务架构)的普及,应用系统之间的交互越来越频繁。为了确保这些交互能够高效、安全地进行,需要选择合适的数据传输方式。本文将详细...

    一种自适应无线移动自组织网络数据传输方法

    ### 一种自适应无线移动自组织网络数据传输方法 #### 概述 本文提出了一种针对无线移动自组织网络(MANET)的自适应数据传输方法。该方法旨在解决网络节点密度变化对数据传输效率的影响问题。随着节点密度的变化,...

    数据传输工具源码

    1. **C#编程语言**:C#是一种面向对象的编程语言,由微软公司开发,广泛应用于Windows平台上的应用开发。在本项目中,C#被用作开发数据传输工具的主要语言,它提供了丰富的类库和语法特性,使得开发高效、稳定的程序...

    无线数据传输的组网方式.pdf

    ### 无线数据传输的组网方式 #### 一、引言 随着信息技术的发展,无线数据传输技术已经...随着无线通信技术的不断发展和完善,未来的无线数据传输组网方式将会更加灵活多样,为用户提供更高效、可靠的通信解决方案。

    本测试程序实现的功能是: PC 与 FPGA 通过 PCIE 进行 DMA 方式的数据传输

    PCIE是一种广泛应用于计算机系统中的高速接口标准,它为设备提供了高带宽、低延迟的数据传输路径,特别适合于对速度有严格要求的FPGA应用。 首先,我们需要理解PCI Express(PCIE)的基础知识。PCIE是一种串行总线...

    应用系统之间数据传输几种方式.docx

    本文将详细介绍几种常见的应用系统间数据传输方式,并针对每种方式的特点、优缺点进行分析。 #### 二、数据传输的基本要素 在探讨具体的传输方式之前,我们需要了解数据传输的基本要素: 1. **传输方式**:指数据...

    电子通信设计资料一种无线数据传输方案及实现

    根据提供的文件信息,本文将详细解析“电子通信设计资料一种无线数据传输方案及实现”的相关知识点,主要包括无线数据传输的基本概念、方案设计思路以及其实现方法等。 ### 一、无线数据传输概述 #### 1.1 定义 ...

    一种降低5G上行数据传输时延的方案.docx

    2. **动态资源分配策略**:设计一种灵活的资源分配算法,能够在不影响其他服务的同时,为需要发送小包数据的终端分配必要的资源。这种策略应该能够根据网络负载和终端需求的变化进行动态调整。 3. **移动场景下的...

    无线和有线USB接口共存的数据传输系统

    * 无线USB(WUSB)是一种无线总线技术,使用超宽带技术(UWB)和脉冲调制方式,具有高速数据传输速率和低功耗特点。 * CYWUSB6935是Cypress公司推出的一款支持WUSB标准的芯片,具有高达62.5 kbps的数据传输速率和低...

    GPRS数据传输设计

    - **UDP(User Datagram Protocol,用户数据报协议)**:提供一种不可靠但速度快的数据传输服务,适用于实时应用。 #### 四、GPRS数字传输模块设计 - **设计特点**: - 支持GPRS网络和短信两种工作模式。 - ...

    串口数据传输助手

    串口通常采用RS-232、RS-485或USB-to-Serial等标准,其中RS-232是最常见的一种,用于短距离、低速的数据传输。 在串口通讯中,每个数据位(bit)按照固定的时钟信号依次发送,包括起始位、数据位、奇偶校验位和停止...

    webservice数据传输方式Xfire

    在标题中提到的“webservice数据传输方式Xfire”,主要指的是利用Xfire来构建Web服务接口,实现数据的发送和接收。Xfire采用了Java编程语言,并且充分利用了Java的XML处理库,如JAXB(Java Architecture for XML ...

    基于U S B接口的无线数据传输

    为了解决这些问题,本文介绍了一种基于USB接口的无线数据传输系统,它不仅利用了USB接口的高传输速率和即插即用特性,还结合了无线数据传输技术,实现了高效、便捷的无线数据通讯。 #### 关键技术与优势 **1. USB...

    GPRS数据传输模块设参软件.zip

    GPRS(General Packet Radio Service)是一种基于GSM网络的分组交换技术,能够提供连续的数据传输服务。在GPRS网络的支持下,数据传输模块可以实现高速、双向的数据通信,广泛应用于远程监控、工业自动化、智能电网...

    微型计算机接口和外设的数据传输

    微型计算机接口和外设的数据...微型计算机接口和外设的数据传输是计算机系统中的一个重要组件,它们之间的数据传输方式有多种,每种方式都有其优缺点和使用场合。选择合适的数据传输方式可以提高系统的性能和可靠性。

    一种基于GPRS的远程无线数据传输醛终端实现技术的研究

    本文探讨了一种基于GPRS(通用分组无线服务)的远程无线数据传输技术,在智能油田数据信息采集系统中的应用。GPRS作为一种2.5G网络技术,在当前的无线通信领域占有重要地位,尤其是在数据传输方面。与传统的GSM网络...

    基于STM32的无线数据传输综合应用.pdf

    该方案主要通过Cortex-M3处理器STM32F10XXX组成的硬件开发平台和专用无线传输单芯片nRF24L01实现,可以在特殊场合,如不能采用有线的数据传输方式时,采用短距离无线数据传输方式。这种方式具有不用布线、快速布局、...

    电子通信设计资料一种点对多点无线数据传输系统的设计

    根据提供的文件信息,本文将详细解析“电子通信设计资料一种点对多点无线数据传输系统的设计”的关键知识点。 ### 一、点对多点无线数据传输系统的概念 点对多点无线数据传输系统是一种能够实现单个发射端与多个...

    基于java的UDP数据传输

    在计算机网络通信中,UDP(User Datagram Protocol,用户数据报协议)是一种无连接的、不可靠的传输层协议,它提供了比TCP(Transmission Control Protocol,传输控制协议)更快的数据传输方式。由于UDP不进行连接...

Global site tag (gtag.js) - Google Analytics