您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 其它相关文档 > 第7章_基于HTTP协议的网络开发
第7章基于HTTP协议的网络开发主讲教师:贾震斌本章教学目标•了解HTTP协议传输数据的基本步骤;•掌握基于HTTP协议的J2ME网络连接编程步骤及方法。本章学习建议•J2ME中基于HTTP协议的网络连接随着3G时代的来临,已经越来越成为手持移动设备主流的网络连接方式,本章内容教材限于篇幅比较简略,学习本章内容应注意立足教材面向课外,充分利用图书、互联网上的资源,扩展知识结构,提高实际开发能力。本章目录•7.1HTTP协议概述•7.2建立HTTP连接•7.3本章小结•习题7.1HTTP协议概述7.1.1HTTP连接状态•HTTP协议称为超文本传输协议,一次完整的HTTP连接过程有4个步骤:•连接:客户端与服务器建立连接;•请求:客户端向服务器发送请求,请求有两种传输方式:get和post;•应答:服务器接受客户端请求进行相关处理,并把处理结果发送给客户端口;•结束:一次连接结束,客户端与服务器断开连接,以便其他客户端设备可以连接到服务器。7.1.2HTTP请求方式•当客户端与服务器建立连接后,客户端会向服务器发送请求信息。HTTP协议中客户端向服务器发送信息的基本格式:1.请求行:是HTTP协议发送信息的第一行,而且只有一行,包括以下部分:[请求方式]:可以是GET、POST、HEAD或其他扩展方法[URL]:请求的目标地址[HTTP协议版本号]:通常是HTTP/1.0或者HTTP/1.1例:GET头信息:又称元信息,系统将自身的设置信息以头信息的形式发送,信息以“名称:值”的形式组成,可以有多个,也可以没有,还可以自己定义头信息。在J2ME开发时为了减少流量,就是尽量减少头信息。例:Host:[请求头|实体头]:这部分可以是请求头或实体头。请求头用于告诉服务器如何解析本次请求,包括用户可以接受的数据类型、压缩方法和语言等;实体头包含实体信息类型、长度、最后修改时间、数据有效期等3.[空行]:CRLF,即回车换行4.[实体]:实体是具体请求或应答内容。实体数据在以POST传递信息时,存储传递给服务器的参数内容,在以GET方式进行请求时,实体数据这空。HTTP协议响应信息•服务器在处理完客户的请求后,要向客户机发送响应消息,HTTP协议的响应消息格式与请求格式类似:1.状态行[HTTP版本号][状态码]:服务器对客户端的响应信息以数字代码形式给出,由3位整数组成,第1位表示信息类型,1xx为保留字段,一般不使用,2xx表示请求成功接收,3xx表示为了完成请求需客户端进一步细化请求,4xx表示客户端错误,5xx表示服务器错误。响应信息的其余2位表示代号的含义参见教材p.130~131。[原因叙述]:信息原因的说明2.头信息[响应头|实体头]:响应头主要是描述服务器的信息、重定向信息等;实体头包括实体信息类型、长度等信息3.[CRLF]:回车换行4.[实体]:响应的具体内容,如果服务器是响应浏览器的请求,这部分通常就是网页内容。HTTP协议的三种请求方式•GET:是最常用的一种方法,其后面跟随一个URL链接,常用于向服务器请求一个静态网页,服务器接受请求后返回其请求的文档。•HEAD:向服务器发送请求,但服务器不会返回资源。•POST:用于向服务器发送大量数据,也可以接收服务器的大量数据,通常该方法与CGI程序或Servlet这类服务器端的程序配合,完成数据的发送或接收,如向服务器请求一个动态网页。7.2建立HTTP连接•J2ME连接服务器的三个步骤:•建立连接:向服务器发送连接请求•连接成功:等待服务器响应•关闭连接:关闭与服务器的连接,释放资源建立连接方法•在J2ME中使用HTTP协议进行编程,需要使用HttpConnection接口来实现。•调用Connector的静态方法open()建立与服务器的连接:•HttpConnectionhc=(HttpConnection)Connector.open(URL网址)输入字节流方法•连接成功以后可以利用openInputStream()得到InputStream输入字节流,获得服务器端向客户端发送的数据建立HTTP连接的实例一•设计程序读取网址为的网络文件内容显示在文本域中,参见实例项目HttpTest•编程思路:•设置一个文本域TextBox,为其建立一个exit菜单及Command命令,同时为文本域设置监听器CommandListener•程序中利用Connector的open()方法打开网址,获得字节输入流,循环读取字节输入流中的字节,将这些字节转换成字符连接成一个字符串,最后将字符串显示在文本域中•注:HttpConnection连接方式也可以改为通过StreamConnection方式,方法如下:•StreamConnectionsc=(StreamConnection)Connecor.open(“”)•注意:如果连网的话,上面语句中的url可以必用其他网址,但要注意某些网站的网页设计使用了某些特殊技术,可能无法正常获取会造成程序运行失败建立HTTP连接的实例二•将实例一改为用GET传输方法访问ASP网页,参见实例项目IDTest建立HTTP连接的实例三•本实例主要特点是能显示中文字符,通过下面的方法将字符集改为GB2312:•Stringstr=newString(content.getBytes(ISO8859-I),gb2312);•关于J2ME程序的中文编码问题建议通过网络搜索了解更多信息,如•J2ME中文编码问题•注意:本书中该实例中编程中有错,会造成程序无法正常运行,正确的代码已在程序中给出。7.3本章小结•本章主要介绍了通用连接框架中如何进行HTTP网络连接习题•1.什么是HTTP协议?简述HTTP协议连接过程。•2.服务器端对客户端请求发出响应形式是什么?•3.HTTP协议中客户端向服务器端发送信息时的请示方式主要有哪几种?举例说明J2ME的HTTP连接中GET传输方式的作用。•4.在J2ME中使用HTTP协议进行编程,需要调用Connector的静态方法open()建立与服务器的连接对象接口是什么?•5.掌握“7.2建立HTTP连接”中各程序功功能。实验四基于HTTP协议书的网络编程•实验名称:基于HTTP协议书的网络编程•实验目的:•1.掌握基于HTTP协议的网络编程的步骤•2.掌握POST和GET数据传输方式的不同应用•实验内容:•1.教材实例一•2.教材实例二•实验结论•1.记录实验过程中程序运行结果、问题解决方案、结论及体会•2.提出改进思路及方法
本文标题:第7章_基于HTTP协议的网络开发
链接地址:https://www.777doc.com/doc-2198176 .html