[英]Ignore Special Characters - Web API C#
問題:特殊字符,特別是 $ 和 £ 導致 Web Api - ASP.NET C# 中的行為不一致。 調用 API 后,結果有時是 -
結果:{“消息”:“發生錯誤。”}
我試過的
問題:有沒有辦法允許特殊字符通過 API(就像字符串一樣)? 即使包含特殊字符,有沒有辦法只取回純字符串? 下面是一些獲取消息的代碼 -
public List<Results> Get(string Message)
{
//DO SOMETHING WITH THE MESSAGE AS A STRING & RETURN RESULTS
}
另外,這是我調用 API 的方式 -
//CALLING API STEPS
string url = ".....//api/data?Message=";
string message = "Test For $5700.00 at ";
string completeURL = url + Uri.EscapeDataString(message);
var client = new WebClient();
var content = client.DownloadString(completeURL);
我在下面添加了一些額外的測試結果 -
測試結果 - 通過
string url = ".....//api/data?Message=";
string message = "Test For $5700.00 at ";
message = message.Replace("$", "%24");//Adding this line before the URL-encoding fixes the problem
string completeURL = url + Uri.EscapeDataString(message);
var client = new WebClient();
var content = client.DownloadString(completeURL);
//PASS - COMPLETE URL: ".....//api/data?Message=Test%20for%20%25245700.00%20at%20"
//RESULT - API CALL SUCCESSFUL
測試結果 - 失敗
string url = ".....//api/data?Message=";
string message = "Test For $5700.00 at ";
string completeURL = url + Uri.EscapeDataString(message);
var client = new WebClient();
var content = client.DownloadString(completeURL);
//FAIL - COMPLETE URL: ".....//api/data?Message=Test%20for%20%245700.00%20at%20"
//RESULT - EXCEPTION -> "The remote server returned an error: (500) Internal Server Error."
感謝您添加測試結果:
//PASS - COMPLETE URL: ".....//api/data?Message=Test%20for%20%25245700.00%20at%20"
//RESULT - API CALL SUCCESSFUL
//FAIL - COMPLETE URL: ".....//api/data?Message=Test%20for%20%245700.00%20at%20"
//RESULT - EXCEPTION -> "The remote server returned an error: (500) Internal Server Error."
似乎很清楚發生了什么:
我懷疑失敗案例(HTTP 錯誤 500)和“成功”案例都是錯誤的。
我認為您的意思是“5700.00”,而不是“245700.00”。
建議:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.