`
nanjingjiangbiao_T
  • 浏览: 2595414 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

Android开发--Http操作介绍(一)

 
阅读更多

什么是HTTP?

1.超文本传输协议是互联网上应用最为广泛的一种网络协议

2.HTTP是一个客户端和服务器端请求和应答的标准,客户端是终端用户,服务器端是网站

3.HTTP是客户端浏览器或其他应用程序与Web服务器之间的应用层通信协议


HTTP工作原理

1.客户端与服务器建立连接

2.建立连接后,客户端想服务器端发送一个请求

3.服务器接收到请求之后,向客户端发送响应信息

4.客户端与服务器端断开连接

注意:这里的第四条需要注意,即当用户看到如下的界面时,客户端就已经与服务器断开连接了。



HTTP运行流程


下面以一个简单的例子介绍与服务器端的连接,并从服务器端获取数据,下图是运行的截图:


当用户点击按钮时,向服务器端发送请求,并把返回的数据显示在下面的textview中,下面是具体的实现代码:

public class MainActivity extends Activity {
	private Button button;
	private TextView textView;
	private HttpResponse httpResponse=null;
	private HttpEntity httpEntity=null;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		button=(Button)findViewById(R.id.button);
		textView=(TextView)findViewById(R.id.textview);
		button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View arg0) {
				// TODO Auto-generated method stub
				//生成一个请求对象
				HttpGet httpGet=new HttpGet("http://www.baidu.com");
				//生成一个Http客户端对象
				HttpClient httpClient=new DefaultHttpClient();
				//使用Http客户端发送请求对象
				InputStream inputStream=null;
				try {
					httpResponse=httpClient.execute(httpGet);
					//收到服务器的响应之后把返回的数据读取出来
					httpEntity=httpResponse.getEntity();
					inputStream=httpEntity.getContent();
					//流文件的读取
					BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
					String resultString="";
					String lineString="";
					while((lineString=reader.readLine())!=null){
						resultString=resultString+lineString;
					}
					textView.setText(resultString);
				} catch (ClientProtocolException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				finally{
					try {
						inputStream.close();
					} catch (Exception e2) {
						// TODO: handle exception
						e2.printStackTrace();
					}
				}
			}
		});
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_main, menu);
		return true;
	}

}
注意,由于涉及到网络连接,还要在AndroidManifest中声明网络权限:


<uses-permission android:name="android.permission.INTERNET"/>


分享到:
评论

相关推荐

    Android--开发--_jni操作指南.rar

    Android--开发--_jni操作指南

    android-async-http简介

    在 iOS开发中有大名鼎鼎的AFNetworking库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,此库的网络处理均基于Android的非UI线程,通过回调方法处理请求结果。...

    Android开发实验---通讯录.docx

    由于界面设置繁琐,代码页过多,所以挑出其中的一部分进行说明 首先是DB数据库建库过程: Android开发实验---通讯录全文共25页,当前为第3页。package com.xample.hivian.my_contact_manager.models.db; import ...

    Android代码-安卓串口打开、接收与发送

    AndroidSerialPort ...涉及到的 jni 开发可以参考:【Android 应用开发】Android 开发 之 JNI入门 - NDK从入门到精通 jni 开发遇到的坑:https://github.com/jp1017/Android-Collection/issues/10

    老罗android开发视频教程全集百度网盘下载

    【第一版第三章】老罗Android开发视频--HTTP协议编程(4集) 【第一版第四章】老罗Android开发视频--解析XML数据(3集) 【第一版第五章】老罗Android开发视频--解析JSON数据(4集) 【第一版第六章】老罗Android...

    Android-Android-Fleet-Management-SDK.zip

    Android-Android-Fleet-Management-SDK.zip,面向android的estimote车队管理sdk,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    android-async-http-1.4.3.jar 包

    安卓开发中经常使用到的一个框架,使用android-async-http这个库可以大大的简化操作,它是基于Apache’s HttpClient ,所有的请求都是独立在UI主线程之外,通过回调方法处理请求结果,采用android Handler message ...

    Android platform-tools

    platform-tools是一款安卓调试工具包。platform-tools里面包括了adb、fastboot、etc1tool等常用调试工具,你可以利用它们将安卓系统在其他设备上调试或者刷机、解锁等操作,十分实用。 platform-tools功能介绍: ...

    Android 利用commons-net-3.3实现ftp上传下载Demo

    在Android端实现ftp登陆、登出、获取文件列表、文件(夹)上传下载、创建文件夹等操作。

    [14本经典Android开发教程]-3-Android SDK 中文开发文档

    [14本经典Android开发教程]-3-Android SDK 中文开发文档 什么是 Android? Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta版的 Android SDK 提供了在Android 平台上...

    Android-android-dev-bookmarks.zip

    Android-android-dev-bookmarks.zip,android开发书签(adb)-android用于cn dev now:https://rocko.xyz/categories/android-dev-bookmarks/;android-dev-bookmarks/;android:https://tinyletter.com/rocko:,安卓...

    Android-android-tips-tricks.zip

    Android-android-tips-tricks.zip,[备忘]android开发的技巧,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。

    新版Android开发教程.rar

    这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...

    android-studio-2020.3.1.24-windows.zip

    Android Studio 4.3 (Android Studio Arctic Fox 2020.3.1.24)开发工具版本适用64位Windows操作系统:android-studio-2020.3.1.24-windows.zip,Android Studio 4.2.2的下一个版本开发工具。

    Android-android操作录制操作回放

    android操作录制、操作回放

    Android游戏开发-02初始化环境.WMV

    Android游戏开发-02初始化环境.WMV

    android-x86-2.2-generic.iso

    安卓系统2.2版本,可用VBox安装。...安卓2.2是谷歌于北京时间2010年5月20日晚上10:30点在旧金山Moscone会展中心举办Google I/O 2010大会第二天的会议,Google正式发布了代号是“froyo 冻酸奶”的Android手机操作系统

    移动操作系统原理与实践——基于Java语言的Android应用开发.zip

    第2章Android开发环境搭建 2.1JDK安装与配置 2.2安装Android Studio 2.3安装Android SDK 2.4创建Android模拟器 本章总结 本章练习题 第3章第一个Android应用程序 3.1使用Android Studio工具创建项目

    25.[开源][安卓]androidquery-master

    25.[开源][安卓]androidquery-master Android-Query(AQuery)是一个轻量级的开发包,用于实现Android上的异步任务和操作UI元素,可让Android应用开发更简单、更容易,也更有趣。

    android开发揭秘PDF

    第1章 Android开发简介 1.1 Android基本概念 1.1.1 Android简介 1.1.2 Android的系统构架 1.1.3 Android应用程序框架 1.2 OMS介绍 1.2.1 OPhone介绍 1.2.2 Widget介绍 1.3 小结 第2章 Android开发环境搭建 2.1 ...

Global site tag (gtag.js) - Google Analytics