Я пытаюсь выполнить HTTP-УДАЛЕНИЕ в C # из моего кода и не могу это сделать. Посмотрев на членов типа WebRequestMethods.Http
, я даже не уверен, что это возможно.
Вот мой код:
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();
}
Запустив это из среды разработки, я получаю: " Удаленный сервер возвратил ошибку: (401) Несанкционированный. "
Я получил другой результат на сервере, который, как я предполагаю, как-то связан с настройками в IIS: «Удаленный сервер возвратил ошибку: (501) Не реализовано».
Кроме того, как я упоминал в комментарии на ответ ниже я могу отправлять запросы DELETE с классической страницы asp, используя vbscript на том же сервере, в то же место, что и запрос со страницы aspx, используя c #. Чем они отличаются?
401 означает, что сервер ожидает от вас аутентификации (возможно, он разрешает анонимный доступ только для операций чтения)?
Кроме того, вы можете удалить заголовок Content-Type, если вы действительно не планируете отправлять тело с запросом (что было бы необычно для УДАЛИТЬ ...)