簡體   English   中英

REST API不能接受C#中的多個參數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM