Maison >développement back-end >C++ >Comment puis-je effectuer des requêtes HTTP GET avec des barres obliques codées en URL dans .NET ?
Requêtes HTTP GET avec des barres obliques codées en URL
L'accès aux URL avec des barres obliques codées en URL dans .NET pose un défi. Au lieu de conserver l'encodage de l'URL, le framework tente de le canoniser, ce qui entraîne une requête HTTP invalide.
Pour surmonter ce problème, une solution de contournement existe :
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); }
Ce hack manipule l'URI interne indicateurs pour conserver le codage de l'URL, autorisant les requêtes HTTP GET avec des barres obliques codées en URL. Cependant, il convient de noter que cette approche pourrait ne pas être compatible avec les futures versions du framework.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!