[英]REST API get not accepting multiple parameters in C#
我正在使用.NET 4.5框架來構建REST API。 該API具有帶有多個參數的get
方法,但是當我調用API時,它表明錯誤的請求第二個參數為null。 實際上,我正在傳遞第二個參數的值。 下面是方法的實現,
[HttpGet()]
[Route("api/Mycontroller/{useid:int}")]
public List<GetDetails> GET([FromUri()] int useid, DateTime loginDate)
{
// Some logic
}
通過C#代碼請求:
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://localhost/abc/");
client.DefaultRequestHeaders.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage clientResponse = Task.Run(async () => { return await client.GetAsync("api/Mycontroller/" + userid+"?LoginDate=" +TodaysDateParameter); }).Result;
由於錯誤的請求,結果返回空值。
我嘗試了查詢字符串的各種可能性,但沒有任何效果。 我試圖刪除路線fromuri()
和fromBody()
但這也沒有幫助。
我究竟做錯了什么?
您還需要將第二個參數添加到方法的[Route]
屬性中,如下所示:
[Route("api/Mycontroller/{useid:int}/{loginDate}")]
public List<GetDetails> GET([FromUri()] int useid, DateTime loginDate)
然后,您可以像這樣調用您的API方法:
string queryUrl = $"api/Mycontroller/{userid}/{TodaysDateParameter}";
HttpResponseMessage clientResponse = Task.Run(async () => { return await client.GetAsync(queryUrl).Result;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.