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