簡體   English   中英

1.路由參數中的正斜杠

[英]1. Forward slash in routing parameter

我有一個 GET 端點,它將以用戶名作為參數。 下面是動作

[Route("user/{userName}")]
public User GetUserByName([FromUri] string userName)
{
  // logic here
}

這就是我提出請求的方式。

var restClient = new RestClient("uri");
var request = new RestRequest("user/" + userName);
var response = restClient.Execute(request);

它適用於所有情況,直到名稱包含正斜杠的用戶出現。 例如:Akbar/Badhusha 然后請求看起來像user/Akbar/Badhusha

這導致請求返回Not Fount錯誤

我嘗試使用 AddQueryParameter 方法添加參數。 所有返回 Not found 錯誤。

  1. 我也試過 HttpUtility.UrlEncode
  2. 還嘗試用 %2f 替換 /
  3. 也試過 user?userName=Akbar/Badhusha

他們都失敗了。

有沒有辦法讓它工作?

嘗試從參數中刪除[FromUri] ,如下所示,

[Route("user")]
public User GetUserByName(string userName)
{
  // logic here
}

請求可能看起來像,

user?userName=Akbar/Badhush

暫無
暫無

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

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