URL 인코딩 슬래시가 포함된 GET 요청 보내기
URL 인코딩 슬래시가 포함된 URL로 GET 요청을 보내려고 할 때(예: , http://example.com//), 웹 클라이언트가 이를 잘못된 URL로 변환하는 문제가 발생할 수 있습니다. (예: http://example.com//).
이 문제를 해결하기 위해 다음 코드는 경로와 쿼리를 표준으로 처리하여 해결 방법을 제공합니다.
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; // need to access PathAndQuery FieldInfo flagsFieldInfo = typeof(Uri).GetField("m_Flags", BindingFlags.Instance | BindingFlags.NonPublic); ulong flags = (ulong) flagsFieldInfo.GetValue(uri); flags &= ~((ulong) 0x30); // Flags.PathNotCanonical|Flags.QueryNotCanonical flagsFieldInfo.SetValue(uri, flags); }
이 스크립트는 Uri 개체의 내부 플래그를 조작하여 경로와 쿼리를 표준으로 처리하고 요청 중에 추가 변환이 필요하지 않도록 하는 방식으로 작동합니다.
위 내용은 URL 인코딩 슬래시가 포함된 GET 요청을 올바르게 보내는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!