簡體   English   中英

REST API:使用屬性路由在URL中傳遞冒號(:)不起作用

[英]REST API : Passing Colon (:) in url using attribute Routing doesn't work

我正在使用swagger ui測試POST方法。 我在URL中傳遞了參數,但是它不起作用。
招搖的用戶界面:

我輸入這個
日期:2017-03-03T12:12:12
這是怎么回事
網址:https:// 服務器名 / Results / 2017-03-03T12%3A12%3A12


這行不通。 它返回404錯誤

但是當我只通過日期時它有效。

日期:2017-03-03

我的方法:

[Route(“ {Results / {date}”),HttpPost]
公共Common.CallDetails StartTCISCall(DateTime日期)

我也試過了,但是它甚至沒有捕獲為字符串。

[Route(“ {Results / {* date}”),HttpPost]
公共Common.CallDetails StartTCISCall(字符串日期)

我一取出結腸,它就會開始工作。 我能做什么?

另外,對我的朋友來說,它可以在VS上本地運行,但是當他發布到IIS時它不起作用,我們嘗試了3種不同的服務器。 為什么是這樣?

非常感謝,請幫忙。

首先,似乎編碼的URL僅在?之后起作用。 對於全局變量,根據以下內容: URL encoding 因此,它不適用於C#中的路由。

對於問號后的編碼字符串,您必須對字符串進行如下解碼:

string result = Server.UrlDecode(date);

您的網址應如下所示:

https://servername/Results?2017-03-03T12%3A12%3A12

事實證明,這是一個IIS問題,其中服務器配置為拒絕:或%,這就是為什么編碼的URL都無法通過的原因

在IIS上更改設置后,它可以工作。

我希望這有幫助!

暫無
暫無

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

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