簡體   English   中英

如何為將字符串數組作為參數的 .Net Core 3.1 webapi 服務調用定義路由?

[英]How do I define the Route for a .Net Core 3.1 webapi service call which takes an array of strings as a parameter?

我正在創建一個.NetCore 3.1 Web API 服務。

我很難確定服務調用的正確路由定義。

考慮以下定義:

[HttpPut]
[Route("{paramA}/{paramB}")]
public void Sample(string paramA, string[] paramB)
{
}

傳遞字符串數組時定義路由參數的正確方法是什么? 我應該改用 List 嗎?

我建議您可以通過查詢字符串傳遞數組列表:

[HttpPut]   
[Route("{paramA}")]
public void Sample([FromRoute]string paramA, [FromQuery]string[] paramB)
{
}

發送請求,例如: https://localhost:5001/xxxxxx/aaa?paramB=ss&paramB=sd

結果: 在此處輸入圖像描述

我建議您在 HttpPost 的請求正文中傳遞 Array 字符串,這是您沒有字符限制的請求部分,當在查詢的 url 中您將有類似 300 個字符的限制。

例如:

HttpPost]
[Route("MyArrayStrings")]
public async string MyArrayStrings([FromBody] string content)
{
    return content;
}

然后,您可以在發送請求時使用 Newtonsoft 對數據進行序列化,並在收到時進行反序列化。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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