Android Http客户端编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习指导
学习指导
•在手机客户端编程中,我们也可以模仿这种方法发送GET请求。具 体代码如上图所示: 地址10.0.2.2是Android访问本地服务器的特定地址,与浏览器访问 127.0.0.1是一个意思。从代码中可以看到服务器端LoginServer的URL 地址和请求参数username、password通过?和&拼接在了一起。这 是GET方法提交请求参数的标准形式。将拼接好的URL字符串作为参 数生成URL对象,然后调用URL对象的openConnection方法建立连接 ,同时生成了HttpURLConnection对象conn,通过调用 HttpURLConnection对象的getResponseCode方法,可以检查请求是否 成功。如果成功则通过该对象获取服务器到手机客户端的输入通道 ,手机客户端通过该输入通道读取服务器发送过来下浏览器的请求过程。 首先访问Login_get.html, 在网页中填写用户名和密码信息,如上图 所示:
学习指导
学习指导
点击Login按钮,向服务器发送登陆请求,如上图所示: 观察浏览器的URL,URL的内容并不是 http://localhost:8080/smp1/login , 而是 http://localhost:8080/smp1/login?username=zhangsan&password=123 456, 实际上,这就是GET方法传递参数的形式,即: 浏览器在URL地址后以“?”形式带上数据,多个数据之间以&分隔 。
学习指导
如果我们知道访问资源的URL,并且是基于HTTP的, 那么我们就可以使用HttpURLConnection类。通过 HttpURLConnection我们可以发送请求并获得响应。
学习指导
使用HttpURLConnection的步骤是先实例化一个URL对象,然后 通过URL的openConnection方法建立连接,发送请求并实例化 HttpURLConnection对象,通过调用HttpURLConnection对象的 getResponse方法判断是否请求成功,如果成功,则通过调用 HttpURLConnection对象的getInputStream方法获得输入流,从 服务器端读取信息。
Android HTTP 客户端编程
Android 的网络程序大大增强了手机客户端的功能。 通过网络,一个程序可以和成千上万的人进行通信; 可以获取世界上联网计算机中存储的信息;可以利 用许多计算机的能力来解决一个问题。Android 网络 应用程序最基本的形式是作为应用客户端。Android 客户端获取服务器的数据并显示。比较复杂的 Android 网络应用还会对获取的数据进行处理,不断 更新数据,向他人和计算机发送数据以实现实时交 互。在有线互联网领域,基于HTTP协议的应用是最 为广泛的,也就是我们所说的浏览器/服务器结构的 程序。随着移动互联网技术的发展,有线互联网上 成熟的应用纷纷转移到手机客户端,基于HTTP的手 机客户端/服务器结构的应用会更加广泛。
Android HTTP 客户端编程
Android与服务器的通信方式主要有两种,一是Http通信, 一是Socket通信。两者的最大差异在于,http连接使用的是 “请求—响应方式”,即在请求时建立连接通道,当客户端向 服务器发送请求后,服务器端才能向客户端返回数据。而 Socket通信则是在双方建立起连接后就可以直接进行数据的传 输,在连接时可实现信息的主动推送,而不需要每次由客户端 向服务器发送请求。
学习指导
这里的关键问题是如何才能将请求参数传递给服务器。如果URL直接 设定为http://localhost:8080/smp1/login,那么只是能够访问到服务器 端的LoginServer,但是用户名和密码信息并没有能够作为请求参数发 送给LoginServer。
学习指导
我们现在回顾一下浏览器的请求过程。
Android HTTP 客户端编程
例:
Android HTTP 客户端编程
我们已经在上节课创建了服务器端的Servlet类。上节课 我们是先访问静态页面Login_get.html,静态页面中插入 了表单,表单用于收集用户名和密码信息,然后通过浏览 器用GET请求方法将表单提交给服务器上的LoginServer, LoginServer将请求中的用户名和密码参数提取出来,进行 合法性判断,最后将判断结果发回浏览器。 现在我们要做的事情就是用手机客户端代替上节课的浏览 器,在手机客户端收集用户名和密码信息,通过手机客户 端向服务器端发起GET请求。
告知目标
这节课我们来学习用Android编写Http客户端程序去访 问Java Web服务器上的Servlet程序。
Android HTTP 客户端编程
• 例:在Android手机客户端创建一个UI界面,界面上设置 两个文本框和两个编辑框,两个文本框分别是两个编辑 框的标题,显示“UserName:”和“Password:”,每 个编辑框紧随各自的标题文本框之后,分别接受用户输 入用户名字符串和密码字符串。在文本框和编辑框的下 方,放置两个按钮,一个登录按钮,一个退出按钮。单 击登录按钮,则将用户名和密码提交给服务器,由服务 器判定是否合法用户,如果是合法用户,则服务器返回 欢迎信息,如果不是合法用户,则服务器返回非法用户 信息。手机客户端将服务器返回的信息通过对话框显示 出来,如图所示。在服务器端创建Servlet,响应请求并 且返回登陆结果。
Android HTTP 客户端编程
那么我们如何通过手机客户端向服务器发送请求呢?
在JAVA中,包里面的类是用于网络编程的, 其中.URL类和.URLConection类使编 程者可以方便地利用URL在Internet上进行网络通信。 HttpURLConnection是URLConnection的子类,是 支持 HTTP 特定功能的 URLConnection。