& # 39; + & # 39;从使用c#到webapi2的POST数据中忽略字符
本文关键字:数据 POST 字符 webapi2 | 更新日期: 2023-09-27 18:15:30
我有一个客户端连接到Asp.net Webapi2,使用身份&OAuth2 for Authentication.
在身份验证过程中,每当密码字段包含"+"字符时。服务器直接忽略这个字符!!(以及下面测试中提到的大多数其他符号字符)
string data = "grant_type=password&username=" + username + "&password=" + password;
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(data);
data.PostToUrl();//This Is just pseudoCode
Server Debug:
已发送数据:password=test+1
接收数据:password=test 1
test2
已发送数据:"+_)(&^%$#@!~"
接收数据:" _)("
谢谢。
有什么问题?对于HTTP URL,一个+
相当于一个空格。事实上,%20
也可以使用。
在查询中发送数据时总是使用UrlEncode;在
var q = string.Format("grant_type=password&username={0}&password={1}",
HttpUtility.UrlEncode(username),
HttpUtility.UrlEncode(password));
HttpServerUtility。UrlEncode
这将有助于解决特殊字符的问题,如+和#
要使用它,你需要添加一个对System的引用。Web (Project Explorer> References> Add reference> System.Web)
一旦你完成了,你可以用它来编码任何你想要的项目