fiddler 参数中的 REST Web 方法为空
REST web method in fiddler parameter is null
下面是我编写的提琴手请求。我还添加了我的 class 合同和方法签名。问题是当我执行请求时,我在方法中得到空参数。
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);
是否指定了UriTemplate?就 URI (/Service.svc/getPackPreviews) 而言,在 rest 服务中,在方法名称(如 get、update 等)中使用动词不是一个好的做法。使用名词,例如 Products/Employees/Bidders 可以被不同的请求调用 get/post/delete。
确保 RequestFormat 属性 设置为 Json,它默认为 XML。
由于我的评论未在 SO 中启用...我正在尝试帮助您将其作为答案发布....试试这个 ...看看是否可以工作...@Hammad Nasir
[WebInvoke(RequestFormat = WebMessageFormat.Json)]
List<string> getPackPreviews(PackFilter filter){}
下面是我编写的提琴手请求。我还添加了我的 class 合同和方法签名。问题是当我执行请求时,我在方法中得到空参数。
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);
是否指定了UriTemplate?就 URI (/Service.svc/getPackPreviews) 而言,在 rest 服务中,在方法名称(如 get、update 等)中使用动词不是一个好的做法。使用名词,例如 Products/Employees/Bidders 可以被不同的请求调用 get/post/delete。
确保 RequestFormat 属性 设置为 Json,它默认为 XML。
由于我的评论未在 SO 中启用...我正在尝试帮助您将其作为答案发布....试试这个 ...看看是否可以工作...@Hammad Nasir
[WebInvoke(RequestFormat = WebMessageFormat.Json)]
List<string> getPackPreviews(PackFilter filter){}