我目前正在开发一个 C# WinForms 应用程序,该应用程序调用几个远程 Web 服务。在调查与包含 & 号的字符串相关的错误时,我遇到了以下方法,它为其他Web 服务“编码”POST 主体(诚然,它没有 & 号问题。)
object o = row.Values[i]; //some object
Type valueType = o.GetType();
if (valueType.Name.Equals("String", StringComparison.InvariantCultureIgnoreCase))
{
o = o.ToString().Replace("&", "%26");
}
我对此做了一些 WTF,但后来想,是否有在 POST 正文上执行完整 URL 编码的实际原因?当然,唯一的两个风险点是和号和问号吗?