通过HttpWebRequest对WebService进行动态调用.docx_第1页
通过HttpWebRequest对WebService进行动态调用.docx_第2页
通过HttpWebRequest对WebService进行动态调用.docx_第3页
通过HttpWebRequest对WebService进行动态调用.docx_第4页
通过HttpWebRequest对WebService进行动态调用.docx_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

本文章设计到使用的代码示例的WebService 为服务路径:http:/localhost/WebServiceTest/Service1.asmx服务接口:WebMethod public string HelloWorld(string StudentName,string PassWord) return Hello World; 1 后台调用Webservice的业务需求 在实际开发环境中,我们常常调用WebService时,通过项目中引用现实部署的WebService的Asmx文件,生成客户端代理类的方式。这种方式将和WebService进行了二次封装,并以代理类的方式进行调用,有利用简单,快捷的开发。这种开发方式包含了两个重要的问题1)在开发环境中必须可以访问需要调用的WebService,在开发一些大公司的内网系统时,我们往往在开发环境中访问不到,只仅仅在部署环境中访问。2)WebService的接口发生版本变更,我们的应用系统需要重新编译并部署。 在发现以上的困惑后,直觉告诉我们,我们需要一种直接通过交互协议的方式进行访问WebService。就像网页爬虫一样,去交互业务操作。 2 WebService支持的交互协议 WebService支持三种方式1)Http post 方式(注意这种方式只对于本机调试使用,在web服务部署在其他机器上,应用程序不能通过 Http Post方式调用) 具体交互格式如下:POST /WebServiceTest/Service1.asmx/HelloWorld HTTP/1.1Host: localhostContent-Type: application/x-www-form-urlencodedContent-Length: length StudentName=string&PassWord=string 2)SOAP1.1协议 注意Soap协议是基于HTTP的协议,也就是在HTTP的基础上再次封装交互格式如下:POST /WebServiceTest/Service1.asmx HTTP/1.1Host: localhostContent-Type: text/xml; charset=utf-8Content-Length: lengthSOAPAction: /HelloWorld string string 3)SOAP1.2 协议交互格式如下:POST /WebServiceTest/Service1.asmx HTTP/1.1Host: localhostContent-Type: application/soap+xml; charset=utf-8Content-Length: length string string 3 如何配置WebService支持的协议 WebService支持的协议包含两种 Soap1.1 Soap1.2 对于webService 来讲可以通过配置文件配置,支持那些协议,默认的情况下两种协议都支持。具体的配置方式为:在配置文件中 4 后台对WebService的调用 4.1 SOAP 1.1 后台调用实例 string str1=双引号; Console.WriteLine(新开始进行连接测试); string param = 1 1 ; byte bs = Encoding.UTF8.GetBytes(param); HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(http:/fox-gaolijun/Short_Message/Service1.asmx); myRequest.Method = POST; myRequest.ContentType = text/xml; charset=utf-8; myRequest.Headers.Add(SOAPAction, /HelloWorld); myRequest.ContentLength = bs.Length; Console.WriteLine(完成准备工作); using (Stream reqStream = myRequest.GetRequestStream() reqStream.Write(bs, 0, bs.Length); using (HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse() StreamReader sr = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); responseString = sr.ReadToEnd(); Console.WriteLine(反馈结果 + responseString); Console.WriteLine(完成调用接口); catch (Exception e) Console.WriteLine(System.DateTime.Now.ToShortTimeString() + LBS EXCEPTION: + e.Message); Console.WriteLine(e.StackTrace); 4.1 SOAP 1.2 后台调用实例 Console.WriteLine(新开始进行连接测试); string responseString; string param = 1212 12121 ; byte bs = Encoding.UTF8.GetBytes(param); HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create( http:/fox-gaolijun/Short_Message/Service1.asmx); myRequest.Method = POST; myRequest.ContentType = application/soap+xml; charset=utf-8; myRequest.ContentLength = bs.Length; Console.WriteLine(完成准备工作); using (Stream reqStream = myRequest.GetRequestStream() reqStream.Write(bs, 0, bs.Length); using (HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse() StreamReader sr = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8); responseString = sr.ReadToEnd(); Console.WriteLine(反馈结果 + responseString); Console.WriteLine(完成调用接口); catch (Exception e) Console.WriteLi

温馨提示

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

最新文档

评论

0/150

提交评论