使用Web请求调用WCF服务
2013-05-06 18:45
471 查看
最近配合公司搞java的同事做web项目,要求调用之前部署的WCF服务。同事找了一些java调WCF的三方包(如 axis2),都不太好使,有的直接就是报错(估计原因是把所有的数据成员都弄到一个类里解析,成员的属性有名称相同的就报错)。还好当时使用的是basichttpbinding,可以直接通过拼字符串调用(别的binding没试,有空再说吧)。
先确定WCF地址
服务提供一个Execute(Request r)的方法,返回值为Response。Request和Response都为基类。
然后就是万恶的拼soap字符串了
然后就是把字符串以web请求传到服务器上
先确定WCF地址
string baseAddress = "http://127.0.0.1/WCFTest/Service/WCTestService.svc";
服务提供一个Execute(Request r)的方法,返回值为Response。Request和Response都为基类。
然后就是万恶的拼soap字符串了
string soapBody = @"<s:Envelope xmlns:s=""http://schemas.xmlsoap.org/soap/envelope/""> <s:Body> <Execute xmlns=""http://WCF契约命名空间""> <request i:type=""Request实体类的名称"" xmlns:i=""http://www.w3.org/2001/XMLSchema-instance""> <Request属性1>属性1的值</Request属性1> <Request属性2>属性2的值</Request属性2> </request> </Execute> </s:Body> </s:Envelope>";
然后就是把字符串以web请求传到服务器上
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(baseAddress); req.Method = "post"; req.Headers["SOAPAction"] = "http://tempuri.org/契约接口名称/调用方法"; req.ContentType = “text/xml”; byte[] bodyBytes = Encoding.UTF8.GetBytes(soapBody); req.GetRequestStream().Write(bodyBytes, 0, bodyBytes.Length); req.GetRequestStream().Close(); HttpWebResponse resp; try { resp = (HttpWebResponse)req.GetResponse(); } catch (WebException e) { resp = (HttpWebResponse)e.Response; } if (resp == null) { responseBody = null; Console.WriteLine("Response is null"); } else { Stream respStream = resp.GetResponseStream(); if (respStream != null) { //都有stream了还不好说 嘎嘎 } else { Console.WriteLine("HttpWebResponse.GetResponseStream returned null"); } }
相关文章推荐
- COM(VB/VBA/Script)利用服务标记调用WCF服务之三使用WSDL契约
- 使用vbscript脚本调用web服务
- 使用WCF进行跨平台开发之三(JAVA调用WCF服务)
- 使用HttpClient调用RESTful Web服务
- Cocoa 通过http请求调用WCF服务
- 语义Web服务的API使用实例:OWL-S API结合matchmaker、推理机(Jena、Pellet)进行语义转换、匹配、组合及调用web服务
- 使用WCF创建Web服务
- Fiddler实验:使用Composer发起百度短网址服务API调用请求
- Altova XMLSpy软件测试使用soap远程调用web服务
- 使用 HttpWebRequest 类调用 WEB 服务的示例(C#) 转
- Spring Cloud Spring Boot mybatis分布式微服务云架构(四十)使用AOP统一处理Web请求日志(1)
- COM(VB/VBA/Script)利用服务标记调用WCF服务之一使用类型化契约
- 使用 AJAX Extensions 客户端进行 Web 服务调用
- wcf 中客户端调用之死 感悟 wcf与原来的webservice2.0 的客户端调用区别(wcf调用完不关闭的话那就把web服务搞死了)
- 记录:Web无引用无配置方式动态调用WCF服务
- 调用WCF REST服务时,使用JSON
- [WebMethod]的使用,ajax调用[WebMethod]的使用,webservice(web服务) asmx的使用,ajax调用[WebMethod]进行json传输
- ASP.NET中使用HttpWebRequest调用WCF