我试图使用Win8-Searchbar扫描http-Server。
string uriString = "http://myServer:myPort/?ItemList,SQLFilter=Title LIKE '%" + searchTerm + "%'";
Uri uri = new Uri(uriString);
像“%”,“”(空白)这样的特殊标志正在转变为“%25”,“%20”......
如何防止这些转变? http-Server不理解它:(
答案 0 :(得分:2)
根据w3schools,
只能使用ASCII字符集通过Internet发送URL。
由于URL通常包含ASCII集之外的字符,因此必须将URL转换为有效的ASCII格式。
URL编码用“%”后跟两个十六进制数字替换不安全的ASCII字符。
这就是网址编码发生的原因,而且无法避免它。
在服务器端,您需要使用HttpUtility.UrlDecode来解码字符串。
在URL中显示SQLFilter=Title LIKE '%" + searchTerm + "%'"
之类的内容代表了一个巨大的安全问题。 任何人都可以修改它以在您的数据库上运行任意语句。