현재 두 가지 원격 웹 서비스를 호출하는 C# WinForms 응용 프로그램을 만들고 있습니다. 문자열 앰퍼샌드를 포함 관련된 버그를 조사에서는, 나는 다른 웹 서비스 '인코딩'POST 기관 다음과 같은 방법을 통해 온 (일반적으로 인정 하듯이, 앰퍼샌드 문제가되지 않습니다.)POST 본문에서 전체 URL 인코딩을 수행 할 이유가 있습니까?
object o = row.Values[i]; //some object
Type valueType = o.GetType();
if (valueType.Name.Equals("String", StringComparison.InvariantCultureIgnoreCase))
{
o = o.ToString().Replace("&", "%26");
}
I 이 부분에서 약간의 WTF를했지만 POST 시체에서 전체 URL 인코딩을 수행하는 실제 이유는 무엇입니까? 분명히 유일한 두 가지 위험 요소는 앰퍼샌드와 물음표입니까?
URL이 포함 된 HTTP가있는 모든 것은 일반적으로 URL로 인코딩되어야합니다. 또한 UTF-8 문자 인코딩을 사용하십시오. –
... 그리고 퍼센트 문자 ... 나는 단지 스펙을 고수하겠다. –