
HTTP-GET-Anfragen mit URL-kodierten Schrägstrichen
Der Zugriff auf URLs mit URL-kodierten Schrägstrichen in .NET stellt eine Herausforderung dar. Anstatt die URL-Kodierung beizubehalten, versucht das Framework, sie zu kanonisieren, was zu einer ungültigen HTTP-Anfrage führt.
Um dieses Problem zu beheben, gibt es einen Workaround:
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);
}Dieser Hack manipuliert den internen URI Flags, um die URL-Kodierung beizubehalten und HTTP-GET-Anfragen mit URL-kodierten Schrägstrichen zu ermöglichen. Es ist jedoch zu beachten, dass dieser Ansatz möglicherweise nicht mit zukünftigen Framework-Versionen kompatibel ist.
Das obige ist der detaillierte Inhalt vonWie kann ich HTTP-GET-Anfragen mit URL-codierten Schrägstrichen in .NET stellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Die Seitenzahl von Word beginnt auf der dritten Seite als 1 Tutorial
Drei häufig verwendete Kodierungsmethoden
Verwendung der Accept-Funktion
Welche Java-Workflow-Engines gibt es?
So binden Sie Daten in einer Dropdown-Liste
Was ist die C-Programmiersoftware?
Was ist CONNECTION_REFUSED
So lösen Sie 400 fehlerhafte Anfragen