HTTP协议原理

上传人:飞****9 文档编号:143967657 上传时间:2020-09-04 格式:PPT 页数:28 大小:634.01KB
返回 下载 相关 举报
HTTP协议原理_第1页
第1页 / 共28页
HTTP协议原理_第2页
第2页 / 共28页
HTTP协议原理_第3页
第3页 / 共28页
HTTP协议原理_第4页
第4页 / 共28页
HTTP协议原理_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《HTTP协议原理》由会员分享,可在线阅读,更多相关《HTTP协议原理(28页珍藏版)》请在金锄头文库上搜索。

1、HTTP协议基本原理,XML Web Service 开发,第1章 XML Web Service 第2章 XML Web Service 体系结构 第3章 XML Web Service 基础技术 第4章 使用 XML Web Service 第5章 实现一个简单的 XML Web Service 第6章 部署和发布 XML Web Service 第7章 XML Web Service 的安全 第8章 XML Web Service 设计 第9章 全局 XML Web Service 体系结构,第3章 XML Web Service 基础技术,HTTP 协议基本原理 在 .NET Fram

2、ework 中使用 HTTP协议 XML 基本要点 SOAP 协议的基本原理 在 .NET Framework 中运用 SOAP协议,HTTP 协议基本原理,HTTP 协议概述 HTTP 请求与HTTP响应的结构 HTTP 的 GET 与 POST 方法,3.1 HTTP协议基本原理,URL、URI 和 URN,URI,Uniform Resource Identifier 统一资源标识符,用字符串惟一标识信息资源 URL,Uniform Resource Locator 统一资源定位符,通过“通讯协议网络地址”字符串惟一标识信息位置和资源访问途径 URN,Uniform Resource N

3、ame 统一资源命名符,用于惟一标识全球范围内由专门机构负责的稳定的信息资源,3.1 HTTP协议基本原理,HTTP 协议概述,URL 结构 无状态协议 在客户端发出 HTTP 请求并收到服务器端响应后,连接就会断开,下次的访问与前一次的访问无关,因此如果需要维护客户端的信息,必须在服务器端维持状态数据,实例,http:/host:portpath?querystring,主机,路径,查询字符串,3.1.1 HTTP 协议概述,HTTP 请求的结构,请求的结构,例子,POST /TheStockExchange/Trading/GetStockPrice.asp HTTP/1.1 Host:

4、localhost Content-Type: application/x-www-form-urlencoded Content-Length: 11 Symbol=MSFT,注意空行,Method URL Version Headers Message body,注意空行,3.1.2 HTTP 请求与HTTP响应的结构,响应的结构,例子,HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: 75 ,HTTP 响应的结构,注意空行,Version Status-Code Description Header

5、s Message body,注意空行,3.1.2 HTTP 请求与HTTP响应的结构,HTTP 的 GET 和 POST 方法,HTTP-GET HTTP-POST,例子,例子,GET /Trading/GetStockPrice.asp?Symbol=MSFT HTTP/1.1 Host: localhost,POST /Trading/GetStockPrice.asp HTTP/1.1 Host: localhost Content-Type: application/x-www-form-urlencoded Content-Length: 11 Symbol=MSFT,3.1.3

6、HTTP 的 GET 与 POST 方法,GET 和 POST 方法的区别,GET 方法通常没有消息主体 GET 方法支持最大1024个字节的查询字符串,POST 方法没有限制 POST 方法把查询字符串放在消息主体中传输,因此比 GET 方法支持更多的数据类型,3.1.3 HTTP 的 GET 与 POST 方法,第3章 XML Web Service 基础技术,HTTP 协议基本原理 在 .NET Framework 中使用 HTTP协议 XML 基本要点 SOAP 协议的基本原理 在 .NET Framework 中运用 SOAP协议,在 .NET Framework 中使用 HTTP协

7、议,使用HTTP协议的.NET类 代码演练 发送 HTTP 同步请求 代码演练 发送 HTTP 异步请求,.NET 中与 HTTP 相关的类,HttpWebRequest 由 WebRequest 派生,封装了对HTTP 协议的支持 HttpWebResponse 由 WebResponse 派生,封装了对 HTTP 协议的支持 支持同步和异步操作,HttpWebRequest HttpWebResponse,System.Web,System.IO,StreamReader StreamWriter,3.2.1 使用 HTTP 协议的.NET 类,HttpWebRequest 类,HttpW

8、ebRequest不使用构造函数来进行初始化,而是调用 WebRequest 的 Create 方法 GetResponse 方法向 RequestUri 属性中指定的 Internet 资源发出同步请求并返回包含该响应的 HttpWebResponse 实例,可以使用 BeginGetResponse 和 EndGetResponse 方法向 Internet 资源发出异步请求 向 Internet 资源发送数据时,GetRequestStream 方法返回用于发送数据的 Stream 实例,BeginGetRequestStream 和 EndGetRequestStream 方法提供对发

9、送数据流的异步访问,3.2.1 使用 HTTP 协议的.NET 类,同步调用与异步调用,在 .NET Framework 指定的异步调用方法的设计模式中,每个同步方法都有两个对应的异步方法,即一个 Begin 异步方法和一个 End 异步方法 客户端调用 Begin 方法启动该方法的异步调用,实质是指示开始进行方法调用,但立即返回,不需要等待结果 客户端调用 End 方法获取 XML Web Service 方法执行的结果,3.2.1 使用 HTTP 协议的.NET 类,代码示例 发送同步 HTTP 请求,使用 HttpWebRequest 和HttpWebResponse 类向 Web 服务

10、器发送同步 HTTP 请求,3.2.2 代码演练 发送 HTTP 同步请求,同步请求,/根据URL发送HTTP请求 1.HttpWebRequest req = (HttpWebRequest ) WebRequest.Create(url); 2.req.ContentType=contentType; /确定请求方式为POST或GET 3.req.Method = method; 4.req.ContentLength=content.Length; 5.Stream s; 获取请求流,将请求的内容写入流中 6.s = req.GetRequestStream(); 7.StreamWri

11、ter sw = new StreamWriter(s,Encoding.ASCII); 8.sw.Write(content); 9.sw.Close();,同步请求,10./获取响应 11.HttpWebResponse res = (HttpWebResponse)req.GetResponse(); 12.s = res.GetResponseStream(); 13./读出响应流 14.StreamReader sr = new StreamReader(s,Encoding.ASCII); 15.StringBuilder sb = new StringBuilder(); 16.

12、char data = new char1024; 17.int nBytes; 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.Stream s; 2.HttpWebRequest req = (HttpWebRequest )WebReque

13、st.Create(url); 3.req.ContentType=contentType; 4.req.Method = method; 5.req.ContentLength=content.Length; 6.s = req.GetRequestStream(); 7.StreamWriter sw = new StreamWriter(s); 8.sw.Write(content); 9.sw.Close();,异步请求,10./创建时间处理程序 11.Handler h = new Handler(); 12.AsyncCallback callback = new AsyncCal

14、lback(h.Callback) 13./ 将请求对象作为状态对象进行传递 14.req.BeginGetResponse(callback, req); 15. 16. 17.,异步请求,/处理程序 18.public class Handler 19. 20.public void Callback(IAsyncResult ar) 21. 22./ 从请求状态中获取处理对象 23.HttpWebRequest req = (HttpWebRequest)ar.AsyncState; 24./ 获取响应对象 26.HttpWebResponse res = (HttpWebRespons

15、e)req.EndGetResponse(ar);,异步请求,27./ 开示读取响应流 28.Stream s = res.GetResponseStream(); 29. 30.StreamReader sr = newStreamReader(s,Encoding.ASCII); 31.StringBuilder sb = new StringBuilder(); 32.char data = new char1024; 33.int nBytes; 34.do 35. 36.nBytes = sr.Read(data,0,(int)1024); 37.sb.Append(data); 3

16、8. while (nBytes = 1024); 39.,具体的HTTP-GET请求,class Tester static void Main(string args) Trace.Listeners.Add(new TextWriterTraceListener(Console.Out); Trace.AutoFlush = true; Console.WriteLine(- HTTP GET -); string urlGet = http:/localhost/Woodgrove/Bank.asmx/GetAccount?acctID=1; GetData(urlGet, , GET, );,public static void GetData(string url,string contentType,string method,string content,params string headers) Stream s

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号