什么是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操作指南
在 iOS开发中有大名鼎鼎的AFNetworking库,用来处理网络请求操作,今天要介绍的是一个在Android上同样强大的网络请求库android-async-http,此库的网络处理均基于Android的非UI线程,通过回调方法处理请求结果。...
由于界面设置繁琐,代码页过多,所以挑出其中的一部分进行说明 首先是DB数据库建库过程: Android开发实验---通讯录全文共25页,当前为第3页。package com.xample.hivian.my_contact_manager.models.db; import ...
AndroidSerialPort ...涉及到的 jni 开发可以参考:【Android 应用开发】Android 开发 之 JNI入门 - NDK从入门到精通 jni 开发遇到的坑:https://github.com/jp1017/Android-Collection/issues/10
【第一版第三章】老罗Android开发视频--HTTP协议编程(4集) 【第一版第四章】老罗Android开发视频--解析XML数据(3集) 【第一版第五章】老罗Android开发视频--解析JSON数据(4集) 【第一版第六章】老罗Android...
Android-Android-Fleet-Management-SDK.zip,面向android的estimote车队管理sdk,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
安卓开发中经常使用到的一个框架,使用android-async-http这个库可以大大的简化操作,它是基于Apache’s HttpClient ,所有的请求都是独立在UI主线程之外,通过回调方法处理请求结果,采用android Handler message ...
platform-tools是一款安卓调试工具包。platform-tools里面包括了adb、fastboot、etc1tool等常用调试工具,你可以利用它们将安卓系统在其他设备上调试或者刷机、解锁等操作,十分实用。 platform-tools功能介绍: ...
在Android端实现ftp登陆、登出、获取文件列表、文件(夹)上传下载、创建文件夹等操作。
[14本经典Android开发教程]-3-Android SDK 中文开发文档 什么是 Android? Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。Beta版的 Android SDK 提供了在Android 平台上...
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开发的技巧,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有安全性优势。
这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...
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游戏开发-02初始化环境.WMV
安卓系统2.2版本,可用VBox安装。...安卓2.2是谷歌于北京时间2010年5月20日晚上10:30点在旧金山Moscone会展中心举办Google I/O 2010大会第二天的会议,Google正式发布了代号是“froyo 冻酸奶”的Android手机操作系统
第2章Android开发环境搭建 2.1JDK安装与配置 2.2安装Android Studio 2.3安装Android SDK 2.4创建Android模拟器 本章总结 本章练习题 第3章第一个Android应用程序 3.1使用Android Studio工具创建项目
25.[开源][安卓]androidquery-master Android-Query(AQuery)是一个轻量级的开发包,用于实现Android上的异步任务和操作UI元素,可让Android应用开发更简单、更容易,也更有趣。
第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 ...