Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menghantar Permintaan GET dengan Betul dengan Slash Berkod URL?
Menghantar Permintaan GET dengan Garis miring Berkod URL
Apabila cuba menghantar permintaan GET ke URL yang mengandungi garis miring berkod URL (cth. , http://example.com//), anda mungkin menghadapi masalah apabila klien web menterjemahkannya kepada URL yang tidak sah (cth., http://example.com//).
Untuk menyelesaikan isu ini, kod berikut menyediakan penyelesaian dengan memaksa laluan dan pertanyaan dianggap sebagai berkanun:
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); }
Skrip ini berfungsi dengan memanipulasi bendera dalaman objek Uri, memastikan ia menganggap laluan dan pertanyaan sebagai kanonik, tidak memerlukan sebarang transformasi lanjut semasa permintaan.
Atas ialah kandungan terperinci Bagaimana untuk Menghantar Permintaan GET dengan Betul dengan Slash Berkod URL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!