HTTP-DELETE-Anfrage
Ich bin versucht zu tun, eine HTTP-DELETE in C# aus meinem code, der sich hinter und nicht in der Lage bin, dies zu tun. Nach einem Blick auf die Mitglieder der WebRequestMethods.Http
geben, ich bin mir auch nicht sicher, dass dies möglich ist.
Hier ist mein code:
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/NameFiles/00000.txt");
request.Method = "DELETE";
request.ContentType = "application/x-www-form-urlencoded";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
//some code
}
}
catch (Exception ex)
{
ex.ToString();
}
Läuft dieser aus meiner Entwicklungsumgebung habe ich erhalten: "Der Remoteserver hat einen Fehler zurückgegeben: (401) nicht autorisiert."
Ich erhalten habe, ein anderes Ergebnis als auf einem server, dass ich annehme, hat etwas zu tun mit Einstellungen im IIS: "Der Remoteserver hat einen Fehler zurückgegeben: (501) Nicht Implementiert."
Auch, wie ich bereits in einem Kommentar zu einer Antwort weiter unten, ich bin in der Lage, senden, LÖSCHEN von requests aus einer klassischen asp-Seite mit vbscript auf dem gleichen server im gleichen Verzeichnis wie die Anfrage von meiner aspx-Seite mit c#. Warum sollte diese anders sein?
- HTTP LÖSCHEN ist extrem esoterisch. Nur sehr wenige web-Server unterstützen es. (aus gutem Grund!)
- Woll - ich bin in der Lage, dies zu tun auf dem gleichen server mit einer klassischen asp-Seite mit vbscript.
- Wie genau ist es "esoterisch"?
- Sind Sie sicher, dass Sie nicht brauchen, ein Autorisierungs-token? Wenn Sie müssen Sie brauchen, um liefern eine Kopfzeile wie folgt:
request.Headers.Add("headername", "headervalue");
headername
werden die token-Namen undheadervalue
wird die tatsächliche token.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das IUSR-oder IUSR_MachineName-Konto.
Die IIS_IUSRS oder IIS_WPG-Gruppe.
Sollten Sie sicherstellen, dass die folgenden Konfigurationen sind dort in der config-Datei. Sie können auch sehen, einige andere posten, die im Zusammenhang mit löschen. (ändern unter Einstellungen, die Suiten Ihre Umgebung).
401 bedeutet, dass der server erwartet Authentifizierung (vielleicht ist es erlaubt den anonymen Zugriff nur für lese-Operationen)?
Außerdem kann Sie entfernen möchten, die Content-Type-header, wenn Sie wirklich plan zu senden, die einen Körper mit der Anfrage (das wäre unorthodoxen für LÖSCHEN...)
Den folgenden code bei mir funktioniert, könnte es von nutzen sein, auch für Sie.