




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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
17、, );,public static void GetData(string url,string contentType,string method,string content,params string headers) Stream s; HttpWebRequest req = (HttpWebRequest )WebRequest.Create(url); foreach (string header in headers) req.Headers.Add(header); if (method.Length 0) req.Method = method; if (contentT
18、ype.Length 0) req.ContentType=contentType; if (content.Length 0) req.ContentLength=content.Length; s = req.GetRequestStream(); StreamWriter sw = new StreamWriter(s); sw.Write(content); sw.Close(); DisplayRequest(req); HttpWebResponse res = (HttpWebResponse)req.GetResponse(); DisplayResponse(res); ,public static void DisplayRequest(HttpWebRequest req) Trace.WriteLine(* Request Start *); Trace.WriteLine(req.RequestUri.ToString(); Displa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 东营春季高考数学试卷
- 德城区1年级数学试卷
- 培训课件要有什么内容
- 拱墅区四年级下数学试卷
- 二中广雅初中数学试卷
- 骨科专业培训课件
- 2025年04月河南南阳市社旗县医疗健康服务集团招聘250人笔试历年专业考点(难、易错点)附带答案详解
- 适合提升培训的课件
- 2025至2030磁控健身车产业市场深度调研及发展趋势与发展趋势分析与未来投资战略咨询研究报告
- 2025至2030船舶电子行业市场发展分析与发展前景及有效策略与实施路径评估报告
- OBE专业建设平台项目需求
- (2025)时事政治题库(含参考答案)
- 高压水清洗施安全技术措施
- 【MOOC期末】《中国哲学》(北京师范大学) 期末中国大学慕课答案
- GB/T 18916.65-2024工业用水定额第65部分:饮料
- 厨师高级技师论文范文
- 第五课+弘扬劳动精神、劳模精神、工匠精神【中职专用】中职思想政治《职业道德与法治》高效课堂(高教版2023·基础模块)
- 口腔科医疗垃圾的分类及处理方法
- 2025年工地安全生产月活动方案范文
- 第2单元《对称图形-圆》测试卷及参考答案
- 第九版内科学配套课件-8-骨髓增生异常综合征(MDS)
评论
0/150
提交评论