Wcf restful 趟过的坑

    /// 说明:GET请求
    /// WebGet默认请求是GET方式        
    /// UriTemplate(URL Routing)的参数名name必须要方法的参数名必须一致(不区分大小写)
    /// RequestFormat规定客户端必须是什么数据格式请求的(JSon或者XML),不设置默认为XML
    /// ResponseFormat规定服务端返回给客户端是以是什么数据格返回的(JSon或者XML)

    /// 说明:POST请求
    /// WebInvoke请求方式有POST、PUT、DELETE等,所以需要明确指定Method是哪种请求的,这里我们设置POST请求。
    /// 注意:POST情况下,UriTemplate(URL Routing)一般是没有参数(和上面GET的UriTemplate不一样,因为POST参数都通过消息体传送)        
    /// RequestFormat规定客户端必须是什么数据格式请求的(JSon或者XML),不设置默认为XML
    /// ResponseFormat规定服务端返回给客户端是以是什么数据格返回的(JSon或者XML)
    /// 
    [ServiceContract]
    public interface IRiskWcfServer
    {
        /// 
        /// xxxxx      
        /// 
        /// 
        /// 
        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "GetRiskResearchData", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        ResultMessage GetRiskResearchData(RiskJudgeEntiy riskParam);

        /// 
        /// xxxxxx
        
        /// 
        /// 
        [OperationContract]
        [WebInvoke(Method = "POST", UriTemplate = "RiskInformEvent", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        void RiskInformEvent(string riskParam);

        // TODO: 在此添加您的服务操作      
    }  

初入Wcf restful  趟过一些坑,做下记录,下次翻查。

错误描述:接口Post 调用,输入数字能正常回调参数,输入Json串,报错:the server encounterer an error prossing the request

为此郁闷了好久,

后来翻看了错误代码:Wcf restful 趟过的坑_第1张图片

接口使用json 协议,类库会自动进行序列化操作,接口定义处,接受需用实体类接收。

2、返回数据实体结构问题

返回数据实体结构会序列化为json格式传输,最好根据输出的json串定义好实体结构,自己定义可能会出错,多重结构嵌套,我使用过object来定义实体类内部字段类型,解析不了。

可以参考网站:http://json2csharp.chahuo.com/  自动转换实体

 

Wcf restful 趟过的坑_第2张图片

 

你可能感兴趣的:(c#,restful)