HTTP协议原理PPT课件_第1页
HTTP协议原理PPT课件_第2页
HTTP协议原理PPT课件_第3页
HTTP协议原理PPT课件_第4页
HTTP协议原理PPT课件_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

HTTP协议基本原理 XMLWebService开发 第1章XMLWebService第2章XMLWebService体系结构第3章XMLWebService基础技术第4章使用XMLWebService第5章实现一个简单的XMLWebService第6章部署和发布XMLWebService第7章XMLWebService的安全第8章XMLWebService设计第9章全局XMLWebService体系结构 第3章XMLWebService基础技术 HTTP协议基本原理在 NETFramework中使用HTTP协议XML基本要点SOAP协议的基本原理在 NETFramework中运用SOAP协议 HTTP协议基本原理 HTTP协议概述HTTP请求与HTTP响应的结构HTTP的GET与POST方法 3 1HTTP协议基本原理 URL URI和URN URI UniformResourceIdentifier统一资源标识符 用字符串惟一标识信息资源URL UniformResourceLocator统一资源定位符 通过 通讯协议 网络地址 字符串惟一标识信息位置和资源访问途径URN UniformResourceName统一资源命名符 用于惟一标识全球范围内由专门机构负责的稳定的信息资源 3 1HTTP协议基本原理 HTTP协议概述 URL结构无状态协议在客户端发出HTTP请求并收到服务器端响应后 连接就会断开 下次的访问与前一次的访问无关 因此如果需要维护客户端的信息 必须在服务器端维持状态数据 实例 http host port path querystring 主机 路径 查询字符串 3 1 1HTTP协议概述 HTTP请求的结构 请求的结构 例子 POST TheStockExchange Trading GetStockPrice aspHTTP 1 1Host localhostContent Type application x Content Length 11Symbol MSFT 注意空行 MethodURLVersionHeadersMessagebody 注意空行 3 1 2HTTP请求与HTTP响应的结构 响应的结构 例子 HTTP 1 1200OKContent Type text xml charset utf 8Content Length 75 HTTP响应的结构 注意空行 VersionStatus CodeDescriptionHeadersMessagebody 注意空行 3 1 2HTTP请求与HTTP响应的结构 HTTP的GET和POST方法 HTTP GETHTTP POST 例子 例子 GET Trading GetStockPrice asp Symbol MSFTHTTP 1 1Host localhost POST Trading GetStockPrice aspHTTP 1 1Host localhostContent Type application x Content Length 11Symbol MSFT 3 1 3HTTP的GET与POST方法 GET和POST方法的区别 GET方法通常没有消息主体GET方法支持最大1024个字节的查询字符串 POST方法没有限制POST方法把查询字符串放在消息主体中传输 因此比GET方法支持更多的数据类型 3 1 3HTTP的GET与POST方法 第3章XMLWebService基础技术 HTTP协议基本原理在 NETFramework中使用HTTP协议XML基本要点SOAP协议的基本原理在 NETFramework中运用SOAP协议 在 NETFramework中使用HTTP协议 使用HTTP协议的 NET类代码演练发送HTTP同步请求代码演练发送HTTP异步请求 NET中与HTTP相关的类 HttpWebRequest由WebRequest派生 封装了对HTTP协议的支持HttpWebResponse由WebResponse派生 封装了对HTTP协议的支持支持同步和异步操作 HttpWebRequestHttpWebResponse System Web System IO StreamReaderStreamWriter 3 2 1使用HTTP协议的 NET类 HttpWebRequest类 HttpWebRequest不使用构造函数来进行初始化 而是调用WebRequest的Create方法GetResponse方法向RequestUri属性中指定的Internet资源发出同步请求并返回包含该响应的HttpWebResponse实例 可以使用BeginGetResponse和EndGetResponse方法向Internet资源发出异步请求向Internet资源发送数据时 GetRequestStream方法返回用于发送数据的Stream实例 BeginGetRequestStream和EndGetRequestStream方法提供对发送数据流的异步访问 3 2 1使用HTTP协议的 NET类 同步调用与异步调用 在 NETFramework指定的异步调用方法的设计模式中 每个同步方法都有两个对应的异步方法 即一个Begin异步方法和一个End异步方法客户端调用Begin方法启动该方法的异步调用 实质是指示开始进行方法调用 但立即返回 不需要等待结果客户端调用End方法获取XMLWebService方法执行的结果 3 2 1使用HTTP协议的 NET类 代码示例发送同步HTTP请求 使用HttpWebRequest和HttpWebResponse类向Web服务器发送同步HTTP请求 3 2 2代码演练发送HTTP同步请求 同步请求 根据URL发送HTTP请求1 HttpWebRequestreq HttpWebRequest WebRequest Create url 2 req ContentType contentType 确定请求方式为POST或GET3 req Method method 4 req ContentLength content Length 5 Streams 获取请求流 将请求的内容写入流中6 s req GetRequestStream 7 StreamWritersw newStreamWriter s Encoding ASCII 8 sw Write content 9 sw Close 同步请求 10 获取响应11 HttpWebResponseres HttpWebResponse req GetResponse 12 s res GetResponseStream 13 读出响应流14 StreamReadersr newStreamReader s Encoding ASCII 15 StringBuildersb newStringBuilder 16 char data newchar 1024 17 intnBytes 18 do 19 nBytes sr Read data 0 int 1024 20 sb Append data 21 while nBytes 1024 代码示例发送异步HTTP请求 使用HttpWebRequest和HttpWebResponse类向Web服务器发送异步HTTP请求 3 2 3代码演练发送HTTP异步请求 异步请求 1 Streams 2 HttpWebRequestreq HttpWebRequest WebRequest Create url 3 req ContentType contentType 4 req Method method 5 req ContentLength content Length 6 s req GetRequestStream 7 StreamWritersw newStreamWriter s 8 sw Write content 9 sw Close 异步请求 10 创建时间处理程序11 Handlerh newHandler 12 AsyncCallbackcallback newAsyncCallback h Callback 13 将请求对象作为状态对象进行传递14 req BeginGetResponse callback req 15 16 17 异步请求 处理程序18 publicclassHandler19 20 publicvoidCallback IAsyncResultar 21 22 从请求状态中获取处理对象23 HttpWebRequestreq HttpWebRequest ar AsyncState 24 获取响应对象26 HttpWebResponseres HttpWebResponse req EndGetResponse ar 异步请求 27 开示读取响应流28 Streams res GetResponseStream 29 30 StreamReadersr newStreamReader s Encoding ASCII 31 StringBuildersb newStringBuilder 32 char data newchar 1024 33 intnBytes 34 do35 36 nBytes sr Read data 0 int 1024 37 sb Append data 38 while nBytes 1024 39 具体的HTTP GET请求 classTester staticvoidMain string args Trace Listeners Add newTextWriterTraceListener Console Out Trace AutoFlush true Console WriteLine HTTPGET stringurlGet GetData urlGet GET publicstaticvoidGetData stringurl stringcontentType stringmethod stringcontent paramsstring headers Streams HttpWebRequestreq HttpWebRequest WebRequest Create url foreach stringheaderinheaders req Headers Add header if method Length 0 req Method method if contentType Length 0 req ContentType contentType if content Length 0 req ContentLength content Length s req GetRequestStream StreamWritersw newStreamWriter s sw Write content sw Close DisplayRequest req HttpWebResponseres HttpWebResponse req GetResponse DisplayResponse res publicstaticvoidDisplayRequest HttpWebRequestreq Trace WriteLine RequestStart Trace WriteLine req RequestUri ToString DisplayHeaders req Headers Trace WriteLine RequestEnd publicstaticvoidDisplayResponse HttpWebResponsehresp Trace WriteLine null Trace WriteLine ResponseStart Trace WriteLine hresp StatusCode Trace WriteLine hresp StatusDescription DisplayHeaders hresp Headers DisplayContent hres

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论