URL 인코딩 슬래시가 포함된 HTTP GET 요청
.NET에서 URL 인코딩 슬래시가 포함된 URL에 액세스하는 것은 어려운 일입니다. URL 인코딩을 유지하는 대신 프레임워크가 URL 인코딩을 정규화하려고 시도하여 잘못된 HTTP 요청이 발생합니다.
이 문제를 극복하기 위한 해결 방법이 있습니다.
Uri uri = new Uri("http://example.com/%2F"); ForceCanonicalPathAndQuery(uri); using (WebClient webClient = new WebClient()) { webClient.DownloadData(uri); } void ForceCanonicalPathAndQuery(Uri uri){ string paq = uri.PathAndQuery; FieldInfo flagsFieldInfo = typeof(Uri).GetField("m_Flags", BindingFlags.Instance | BindingFlags.NonPublic); ulong flags = (ulong) flagsFieldInfo.GetValue(uri); flags &= ~((ulong) 0x30); flagsFieldInfo.SetValue(uri, flags); }
이 핵은 내부 URI를 조작합니다. URL 인코딩을 유지하기 위한 플래그로, URL 인코딩 슬래시가 포함된 HTTP GET 요청을 허용합니다. 그러나 이 접근 방식은 향후 프레임워크 버전과 호환되지 않을 수 있다는 점에 유의해야 합니다.
위 내용은 .NET에서 URL 인코딩 슬래시를 사용하여 HTTP GET 요청을 만들려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!