我正在创建一个 API,它只使用 get 请求从数据库中返回一些搜索结果,我正在尝试使它可以传递可选参数(使用 WCF 很容易),而且如果参数在只要查询字符串为空,服务就会忽略它们。
但是,如果您有一个带有空参数的查询字符串,它将由服务器返回一个错误的请求(400),例如
使用您选择的最终用户点传递以下查询字符串
http://www.exampleservice.com/basic/?apiKey=1234&noOfResults=3&maxSalary=&minSalary=&ouId=0&keywords=Web+Developer
注意maxSalary 和 minSalary没有传递值
然后,您将拥有以下 WCF 服务:
[OperationContract]
[WebGet(UriTemplate = "basic/?apiKey={apiKey}&noOfResults={noOfResults}&maxSalary={maxSalary}&minSalary={minSalary}&ouId={ouId}&keywords={keywords}", BodyStyle = WebMessageBodyStyle.Bare)]
public List<SearchResultsDto> BasicSearch(string keywords, string apiKey, int noOfResults, int maxSalary, int minSalary, int ouId)
{
//Do some service stuff
}
这将导致 400 错误,请有人解释一下如何将空参数传递给 WCF 服务,或者这是不可能的?