【问题标题】:REST web method in fiddler parameter is nullfiddler 参数中的 REST Web 方法为空
【发布时间】:2015-12-16 06:52:01
【问题描述】:

以下是我编写的提琴手请求。我还添加了我的班级合同和方法签名。问题是当我执行请求时,我在方法中得到空参数。

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);

【问题讨论】:

    标签: c# web-services wcf rest fiddler


    【解决方案1】:

    由于我的评论在 SO 中未启用...我正在努力帮助您将其发布为答案...试试这个 ...看看这是否有效...@哈马德·纳西尔

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

    【讨论】:

    • 我已经在这样做了。 [WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped)] List getPackPreviews(PackFilter filter){}
    • 从属性中移除 BodyStyle...@HammadNasir
    【解决方案2】:

    是否指定了 UriTemplate?就 URI (/Service.svc/getPackPreviews) 而言,在休息服务中,在方法名称中使用动词(例如 get、update 等)不是一个好习惯。使用名词,例如 Products/Employees/Bidders可以通过不同的请求获取/发布/删除来调用。
    确保 RequestFormat 属性设置为 Json,默认为 XML。

    【讨论】:

      猜你喜欢
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-06
      • 1970-01-01
      • 2018-05-05
      • 2014-08-28
      • 2014-12-20
      相关资源
      最近更新 更多