WCF REST工作总结(一)

时间:2023-04-28 07:50:36 工作总结 我要投稿
  • 相关推荐

WCF REST工作总结(一)

最近工作中学习使用了WCF REST,REST有很多好处高效简约面向资源而客户端调用也变得非常简单。REST入门的资料等大家可以去网上找这里主要分享下遇到的问题以及解决~

一.环境准备

WCF REST工作总结(一)

使用WCF REST可以先下载一个模版并大致预览

下载好这个模版后新建项目选择这个模版会默认帮我们生成一个CRUD的代码新手朋友可以用这个快速熟悉下REST风格的WCF.

这这里还给我们提供了一个很方便的功能help只需在我们的服务后面加上help就能显示服务的详情与介绍了

二.搭建REST WCF服务

1.接口的实现

当我们的请求为Get时一般用来获取数据时使用[WebGet]而增加修改删除则使用[WebInvoke]里面的Method来决定使用POST或PUT等这里要注意下

Method里的一定要为大写POST PUT等否则会出现HTTP错误405 405不允许此方法对于请求所标识的资源,不允许使用请求行中所指定的方法。

我们在这里还可以通过ResponseFormat与RequestFormat来指定接受的参数与返回的参数格式

2.类继承接口这里先贴一部分最基础的CRUD 3.Global里注册路由

用过mvc的朋友是不是发现这样写完后非常的像mvc呢~

三.实现调用服务

1.实现get服务

很简单我们可以直接通过浏览器输入即可获得state为1的所有数据以json格式传输过来

rest风格的wcf使得我们不用再像以前一样客户端添加服务引用了没有了wsdl简洁了许多效率也提高了很多使得我们访问更容易

REST由于没有了代理而是发送请求我们的客户端可以是js访问如果是jquery只需$.get即可发送请求这里我主要说下C#的访问方式

通过WebClient方式这个类封装的比较好调用起来简单但由于封装的过多实现一些功能时则不太容易

通过WebRequest方式这个则比较灵活

上面两个是经常用到的两个类这里再推荐给大家一个是wcf工具里的其中一个专门用来访问rest服务也非常的简单

通过HttpClient这个也是微软开发的工具类而且在最新的.net 4.5里集成了进去

通过上面三个任意其中一个就可以实现提交了

但是这里有一个问题我们以前有代理类通过调用方法得到代理类可是现在呢我们没有类我们得到的是一串json格式的数据我们怎么把他变成像类一样的方便操作呢?

比如A公司发布了rest wcf服务数据格式json公司B要调用A公司的服务以前ws或wcf都有代理可以生成代理类现在却得到的是json数据而我们还没有要反序列化的实体类

比如我现在想把得到的数据像表格一样的展示出来

有两种方法

1.对照json数据客户端新建个类然后通过反序列化把json反序列化为类对象

这样比较麻烦类少还可以要是多了则需要新建很多实体类更关键的是服务端的实体类更新了以前WCF或ws更新下服务即可而现在还要更新客户端实体类岂不是很麻烦?

所以推荐用下面的方法

2.将json反序列话为dynamic类型

json转换为dynamic类型起初我用的是第三方的json.net经过尝试发现再把json转换为集合类型时总是出错如果有朋友知道怎么弄还望告知下

后来经过尝试我采用了微软自带的JavaScriptSerializer下面展示代码

使用方法很简单经过不论是序列化集合还是单个的都没有问题这个时间也会正常显示没有问题~结果上面的代码就可以把接受的json类型展示为一个table了

好了这个问题解决了可以上三种方式发送get请求了这个毕竟简单大家直接看代码

可以看到第一个和第三个都是非常简单的这里要注意的是要注意编码问题因为传递的有中文会有乱码问题

所以要注意编码问题再第二个里可以通过得到response.ContentType先得到编码这样就可以自动识别编码格式了

再说下HttpClient这个真正发送请求是在message.EnsureStatusIsSuccessful();这句话

通过上面任意一种方法我们都可以得到json这样再通过将json反序列话为dynamic类型就可以像有实体类一样简单的操作了~~

【WCF REST工作总结(一)】相关文章:

初一工作总结10-11

高一第一学期工作总结05-23

高一英语工作总结05-26

一周的工作总结04-13

一周工作总结02-20

一天的工作总结05-24

高一英语工作总结01-20

一周的工作总结08-21

一周工作总结08-24

一周工作总结08-24