Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# fiddler参数中的REST web方法为null_C#_Web Services_Wcf_Rest_Fiddler - Fatal编程技术网

C# fiddler参数中的REST web方法为null

C# fiddler参数中的REST web方法为null,c#,web-services,wcf,rest,fiddler,C#,Web Services,Wcf,Rest,Fiddler,下面是我写的小提琴手请求。我还添加了我的类合同和方法签名。问题是当我执行请求时,我在方法中得到了null参数 POST /Service.svc/getPackPreviews HTTP/1.1 Host: 192.168.8.101:4444 User-Agent: Fiddler Content-Type: application/json Content-Length: 22 {"Type":"all" , "RegionId":0, "CategoryId":0, "Radius":

下面是我写的小提琴手请求。我还添加了我的类合同和方法签名。问题是当我执行请求时,我在方法中得到了null参数

POST /Service.svc/getPackPreviews HTTP/1.1
Host: 192.168.8.101:4444
User-Agent: Fiddler
Content-Type: application/json
Content-Length: 22

{"Type":"all" , "RegionId":0,  "CategoryId":0, "Radius":0,  "LatLong":"12"}
合同

[DataContract]
public class PackFilter
{
    [DataMember]
    public string Type { get; set; } //e.g. distance, category, region

    [DataMember]
    public int RegionId { get; set; }

    [DataMember]
    public int CategoryId { get; set; }

    [DataMember]
    public int Radius { get; set; }

    [DataMember]
    public string LatLong { get; set; }
}
    [OperationContract]
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
    List<string> getPackPreviews(PackFilter filter);
方法:

[DataContract]
public class PackFilter
{
    [DataMember]
    public string Type { get; set; } //e.g. distance, category, region

    [DataMember]
    public int RegionId { get; set; }

    [DataMember]
    public int CategoryId { get; set; }

    [DataMember]
    public int Radius { get; set; }

    [DataMember]
    public string LatLong { get; set; }
}
    [OperationContract]
    [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)]
    List<string> getPackPreviews(PackFilter filter);
[运营合同]
[WebInvoke(Method=“POST”,RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.Wrapped)]
列出getPackPreviews(PackFilter过滤器);
是否指定了UriTemplate?就URI(/Service.svc/getPackPreviews)而言,在rest服务中,在方法名称中使用动词(如get、update等)不是一个好的做法。使用名词,例如Products/Employees/Bidders,可由不同的请求get/post/delete调用

确保RequestFormat属性设置为Json,它默认为XML。

因为我的注释在SO中未启用。。。我正试图帮助您将其作为答案发布…试试这个…看看这是否有效@哈马德纳西尔

[WebInvoke(RequestFormat = WebMessageFormat.Json)]
List<string> getPackPreviews(PackFilter filter){}
[WebInvoke(RequestFormat=WebMessageFormat.Json)]
列出getPackPreviews(PackFilter筛选器){}

我已经在这样做了。[WebInvoke(Method=“POST”,RequestFormat=WebMessageFormat.Json,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.Wrapped)]列表getPackPreviews(PackFilter筛选器){}从属性中删除BodyStyle@哈马德纳西尔