fiddler参数中的REST web方法为null

本文关键字:方法 null web REST 参数 fiddler | 更新日期: 2023-09-27 18:27:02

下面是我编写的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":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);

fiddler参数中的REST web方法为null

由于我的评论在SO中没有启用…我正试图帮助您将其作为答案发布试试这个。。。看看这是否有效@Hammad Nasir

[WebInvoke(RequestFormat = WebMessageFormat.Json)]
List<string> getPackPreviews(PackFilter filter){}

是否指定了UriTemplate?就URI(/Service.svc/getPackPreviews)而言,在rest服务中,在方法名称中使用动词(如get、update等)不是一个好的做法。使用名词,如Products/Employes/Bindenders,可以通过不同的请求get/post/delete调用
确保RequestFormat属性设置为Json,它默认为XML。