WCF Restful Post调用
一、首先建立Http的服务端,此示例的寄宿体为WindowsService,以下代码仅为WCF Restful服务代码,不包括服务启动和安装代码
1.服务契约
/// <summary>
/// TEST
/// </summary>
[ServiceContract(Name = "IInSideContract_EnterpriseLibrary")]
public interface IInSideContract_TEST
{
/// <summary>
/// Post获取方式测试
/// </summary>
/// <param name="num1"></param>
/// <returns></returns>
[OperationContract(Name = "ElibPostTest1")]
[WebInvoke(Method = "POST", UriTemplate = "ElibPostTest1",
BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Xml)]
string ElibPostTest1(string num1); }
2.服务实现
/// <summary>
/// TEST
/// </summary>
public class EnterpriseLibrary:IInSideContract_TEST
{
/// <summary>
/// Post获取方式测试
/// </summary>
/// <param name="num1"></param>
/// <returns></returns>
public string ElibPostTest1(string num1)
{
return num1;
}
}
3.配置文件
配置Http的服务
<system.serviceModel>
<services>
<service name="Services.InSideService_Test"
behaviorConfiguration="GetPostBehavior">
<endpoint address="" binding="webHttpBinding" bindingConfiguration="webBindingNoneSecurityPublic"
behaviorConfiguration="GetPostEndBehaviors"
contract="Contracts.IInSideContract_EnterpriseLibrary">
<identity>
<dns value="localhost" />
</identity>
</endpoint>
<endpoint contract="IMetadataExchange" binding="mexHttpBinding" address="mex" />
<host>
<baseAddresses>
<add baseAddress="http://localhost:9999/InSideService_EnterpriseLibrary" />
</baseAddresses>
</host>
</service>
<bindings>
<webHttpBinding>
<binding name="webBindingNoneSecurityPublic" closeTimeout="00:10:00" openTimeout="00:10:00"
receiveTimeout="01:00:00" sendTimeout="01:00:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="" maxReceivedMessageSize=""
useDefaultWebProxy="false">
<readerQuotas maxDepth="" maxStringContentLength="" maxArrayLength=""
maxBytesPerRead="" maxNameTableCharCount="" />
<security mode="None" />
</binding>
</webHttpBinding>
</bindings>
<webHttpBinding>
<binding name="webBindingNoneSecurityPublic" closeTimeout="00:10:00" openTimeout="00:10:00"
receiveTimeout="01:00:00" sendTimeout="01:00:00" allowCookies="false"
bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferPoolSize="" maxReceivedMessageSize=""
useDefaultWebProxy="false">
<readerQuotas maxDepth="" maxStringContentLength="" maxArrayLength=""
maxBytesPerRead="" maxNameTableCharCount="" />
<security mode="None" />
</binding>
</webHttpBinding>
<behaviors>
<serviceBehaviors>
二、建立POST调用WCF Restful服务的客户端
1.客户端代码
static void Main(string[] args)
{
string url = "http://localhost:9999/InSideService_EnterpriseLibrary/ElibPostTest1"; try
{ XmlDocument doc = new XmlDocument();
doc.Load(@"D:\工作目录\TEST\test\ConsoleApplication2\bin\Debug\XMLFile1.xml");
byte[] bytes = Encoding.UTF8.GetBytes(doc.InnerXml);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentLength = bytes.Length;
request.ContentType = "application/xml";
Stream reqstream = request.GetRequestStream();
reqstream.Write(bytes, , bytes.Length);
request.Timeout = ;
request.Headers.Set("Pragma", "no-cache");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Stream streamReceive = response.GetResponseStream();
Encoding encoding = Encoding.UTF8;
StreamReader streamReader = new StreamReader(streamReceive, encoding);
string strResult = streamReader.ReadToEnd();
streamReceive.Dispose();
streamReader.Dispose();
Console.WriteLine(strResult);
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.Read();
}
2.Xml参数
<?xml version="1.0" encoding="utf-8" ?>
<!--方法名、服务命名空间-->
<ElibPostTest1 xmlns="http://tempuri.org/">
<!--参数名称-->
<num1></num1>
</ElibPostTest1>
3.调用结果
WCF Restful Post调用的更多相关文章
- 使用多种客户端消费WCF RestFul服务(四)——Jquery篇
Jquery篇 互联网开发中少不了各类前端开发框架,其中JQUERY就是最流行之一,本篇我们就采用JQUERY来消费WCF RestFul服务,其中用到JSON基础知识,如果有想了解的朋友,请访问:& ...
- 使用多种客户端消费WCF RestFul服务(三)——.net4.5篇
.net 4.5篇 在.net 4.5下面微软提供了System.Net.Http.dll可以非常方便的使用HTTP请求(其实是用来支持Asp.Net Web Api的,不过我们可以拿过来用) 服务仍 ...
- [经验] - JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
最近在开发WSS RESTful服务的时候, 碰到了这些个纠结的问题. 在网上查找了半天, 找到n多种解决方案, 但是都是部分的, 要么是没有跨域的情况, 要么是没有post的情况, 要么不是用WCF ...
- JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案
JQuery.Ajax + 跨域 (crossDomain) + POST + JSON + WCF RESTful, 5大陷阱和解决方案 最近在开发WSS RESTful服务的时候, 碰到了这些个纠 ...
- WCF Restful Service Get / Post请求
Rest 它是用于创建分布式超文本媒体的一种架构方式,我们可以通过标准的HTTP(GET,POST,PUT,DELETE)操作来构建基于面向资源的软件架构方式(Resource-Oriented Ar ...
- WCF Restful Service
对 Web Services.WCF 和 Restful 的扫盲可参见:https://www.cnblogs.com/scy251147/p/3382436.html 关于之前对 WCF 的学习,可 ...
- Linux学习日记-WCF RestFul的部署(三)
一.关于WCF 的部署 默认的wshttp风格的wcf是很容易部署上去的,但是这里给个建议尽量不要使用WCF的配置文件去部署尽管 我们都已经很熟悉了,在使用配置文件你会发现各种蛋疼的问题. 二.WCF ...
- WCF初探-11:WCF客户端异步调用服务
前言: 在上一篇WCF初探-10:WCF客户端调用服务 中,我详细介绍了WCF客户端调用服务的方法,但是,这些操作都是同步进行的.有时我们需要长时间处理应用程序并得到返回结果,但又不想影响程序后面代码 ...
- 构建基于WCF Restful Service的服务
前言 传统的Asmx服务,由于遵循SOAP协议,所以返回内容以xml方式组织.并且客户端需要添加服务端引用才能使用(虽然看到网络上已经提供了这方面的Dynamic Proxy,但是没有这种方式简便), ...
随机推荐
- Kubernetes容器运行时(CRI)简介
Kubernetes节点的底层由一个叫做“容器运行时”的软件进行支撑,它负责比如启停容器这样的事情.最广为人知的容器运行时当属Docker,但它不是唯一的.事实上,容器运行时这个领域发展迅速.为了使K ...
- 阿里云centOS7.4 ftp连接不上的问题
首先查看是开启21端口 选择ECS-->安全组-->配置规则 增加21端口配置 配置如下
- BOM(Browser Object Model) 浏览器对象模型
JavaScript 实现是由 3 个部分组成:核心(ECMAScript),文档对象模型(DOM),浏览器对象模型(BOM) BOM(Browser Object Model) 浏览器对象模型BOM ...
- Java提高篇之常量池
一.相关概念 1. 什么是常量 用final修饰的成员变量表示常量,值一旦给定就无法改变! final修饰的变量有三种:静态变量.实例变量和局部变量,分别表示三种类型的常量. 2. Class文件中的 ...
- 搞懂分布式技术3:初探分布式协调服务zookeeper
搞懂分布式技术3:初探分布式协调服务zookeeper 1.Zookeepr是什么 Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅,负载均衡, ...
- 【MySQL】Error 1264: out of range value for column
此问题是插入的整型数字超出了范围. 比如设置表格的数据类型:cust_fax integer(10) not null 当插入以下数字的时候会抛出标题所说的错误: insert into databa ...
- Ubuntu下彻底卸载mysql
删除 mysql sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove mysql-server sudo apt- ...
- vue-router防跳墙控制
vue-router防跳墙控制 因为在实际开发中,从自己的角度来看,发现可以通过地址栏输入地址,便可以进入本没有权限的网页.而我们一般只是操作登录页面,其他页面很少考虑,此刻特来尝试解决一下 基于vu ...
- 【zznu-2174】
题目链接 题目描述 给出一个圆C1的圆心和半径x1,y1,r1和另外一个圆C2的圆心为x2,y2(x,y均为整数 r为正整数 且绝对值不超1e8).已知两圆圆心距不超1e8,给出两者相交面积S(大于 ...
- yum的搭建
搭建本地yum仓库的步骤 . 创建光盘目录,挂载光盘 . 进入/etc/yum/repos.d目录下,备份所有配置文件 . 利用一个含有大写M的配置文件作为配置文件的模板 . 在模板里将enabled ...