竭诚为您提供优质文档/双击可除http协议和webservice
篇一:通过httpwebRequest对webservice进行动态调用
本文章设计到使用的代码示例的webservice为
服务路径:
http://localhost/webservicetest/service1.asmx 服务接口:
[webmethod]
publicstringhelloworld(stringstudentname,stringpass word)
{
return"helloworld";
}
1后台调用webservice的业务需求
在实际开发环境中,我们常常调用webservice时,通
过项目中引用现实部署的webservice的asmx文件,生成客户端代理类的方式。这种方式将和webservice进行了二次封装,并以代理类的方式进行调用,有利用简单,快捷的开发。
这种开发方式包含了两个重要的问题
1)在开发环境中必须可以访问需要调用的webservice,在开发一些大公司的内网系统时,我们往往在开发环境中访问不到,只仅仅在部署环境中访问。
2)webservice的接口发生版本变更,我们的应用系统需要重新编译并部署。
在发现以上的困惑后,直觉告诉我们,我们需要一种直接通过交互协议的方式进行访问webservice。就像网页爬虫一样,去交互业务操作。
2webservice支持的交互协议
webservice支持三种方式
1)httppost方式(注意这种方式只对于本机调试使用,在web服务部署在其他机器上,应用程序不能通过httppost 方式调用)
具体交互格式如下:
post/webservicetest/service1.asmx/helloworldhttp/1. 1
host:localhost
content-type:application/x-www-form-urlencoded content-length:length
studentname=stringcharset=utf-8
content-length:length
soapaction:"/helloworld"
string
string
3)soap1.2协议
交互格式如下:
post/webservicetest/service1.asmxhttp/1.1 host:localhost
content-type:application/soap+xml;charset=utf-8 content-length:length
string
string
3如何配置webservice支持的协议
webservice支持的协议包含两种soap1.1soap1.2对于webservice来讲可以通过配置文件配置,支持那些协议,默认的情况下两种协议都支持。
具体的配置方式为:
在配置文件中
4后台对webservice的调用
4.1soap1.1后台调用实例
stringstr1="\"双引号\"";
console.writeline("新开始进行连接测试");
stringparam=@"
1
1
";
byte[]bs=encoding.utF8.getbytes(param);
httpwebRequestmyRequest=(httpwebRequest)webRequest. create("http://fox-gaolijun/short_message/service1. asmx");
myRequest.method="post";
myRequest.contenttype="text/xml;charset=utf-8";
myRequest.headers.add("soapaction","http://tempuri. org/helloworld");myRequest.contentlength=bs.length;
console.writeline("完成准备工作");
using(streamreqstream=myRequest.getRequeststream())
{
reqstream.write(bs,0,bs.length);
}
using(httpwebResponsemyResponse=(httpwebResponse)my Request.getResponse())
{
streamReadersr=newstreamReader(myResponse.getRespon sestream(),encoding.utF8);
responsestring=sr.Readtoend();
console.writeline("反馈结果"+responsestring);
}
console.writeline("完成调用接口");
}
catch(exceptione)
{
console.writeline(system.datetime.now.toshorttimest ring()+"lbsexception:"+e.message);
console.writeline(e.stacktrace);
}
篇二:webservice到底是什么?
一、序言
大家或多或少都听过webservice(web服务),有一段时间很多计算机期刊、书籍和网站都大肆的提及和宣传webservice技术,其中不乏很多吹嘘和做广告的成分。但是不得不承认的是webservice真的是一门新兴和有前途的技术,那么webservice到底是什么?何时应该用?
当前的应用程序开发逐步的呈现了两种迥然不同的倾向:一种是基于浏览器的瘦客户端应用程序,一种是基于浏览器的富客户端应用程序(Ria),当然后一种技术相对来说更加的时髦一些(如现在很流行的html5技术),这里主要讲前者。
基于浏览器的瘦客户端应用程序并不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。传统的windows富客户应用程序使用dcom来与服务器进行通信和调用远程对象。配置好dcom使其在一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多it工程师的噩梦。事实上,许多it工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个dcom。关于客户端与服务器的通信问题,一个完美