.net调用RESTful服务

来源:互联网 发布:remap linux 编辑:程序博客网 时间:2024/06/11 14:00
1、新建一个项目,选择online,在搜索框中输入rest搜索,选择T2.WCF.REST.Service下载模板
    QQ截图20140611133057.png
2、新建一个rest项目,可以使用service.cs文件写一个服务,也可以新建一个cs文件需要打上类似service.cs的标签
3、如果是新建了一个cs文件,在Global.asax中添加路由
   RouteTable.Routes.Add(new ServiceRoute("MyService", new WebServiceHostFactory(), typeof(MyService)));  
4、服务分为get、put、delete、post请求,一般只用get和post,get请求的标签是WebGet,其他的是WebInvoke
    【[WebInvoke(UriTemplate = "", Method = "POST")]
    QQ截图20140611104257.png
    默认返回的是XML格式的数据,如果需要JSON格式数据,在WebGet后边加上一个参数
    [WebGet(UriTemplate = "com.b2ceasy/QueryUser/{id}/{name}",ResponseFormat=WebMessageFormat.Json)]
    如果还不生效,需要把web.config文件中的
    <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
    automaticFormatSelectionEnabled设置为false
5、启动网站查看服务地址
    QQ截图20140611103612.png
6、调用resufull服务
    QQ截图20140611132341.png
    这里切记一点,照上述方式在post请求的时候一直报400错误,纠结了很久发现服务端的实体类没有打上DataContract的标签
    属性也没有DataMember标签,但是之后修改了还是报400错误,继续纠结很久,突发奇想会不会是同一个WebClient对象发起一个
    get请求之后继续post请求的原因?然后把get请求的代码注释掉,果然ok
    QQ截图20140611132931.png
0 0
原创粉丝点击