Ответ 1
Для меня работает следующее:
client.UploadValues(url, "DELETE", new NameValueCollection());
У меня есть простая служба Restful, вызываемая из консольного приложения, поэтому я использую WebClient. Мне интересно, правильно ли этот вызов для удаления.
URL-адрес выглядит как localhost/RestService1/Person/1
using (var client = new WebClient())
{
client.UploadString(url, "DELETE", "");
}
Мне не нравится, что UploadString не имеет перегрузки без параметра данных. Прохождение пустого параметра плохо со мной. Есть ли лучший способ использовать для "УДАЛИТЬ"?
Я мог бы использовать WebRequest, но я хочу просто использовать WebClient, чтобы он был последовательным.
Вот блок WebRequest
var request = WebRequest.Create(url);
request.Method = "DELETE";
var response = (HttpWebResponse)request.GetResponse();
Оба блока работают нормально, но что лучше? Или есть лучший способ?
Для меня работает следующее:
client.UploadValues(url, "DELETE", new NameValueCollection());
Класс WebClient не очень хорошо подходит для спокойного потребления api, я использовал сторонние библиотеки, такие как RestSharp в прошлом которые больше ориентированы на этот тип веб-запроса. Я уверен, что RestSharp просто использует HttpWebRequest под обложками, но он предоставляет много семантики, которые облегчают потребление и повторное использование ресурсов для отдыха.
Перейдите к клиентским библиотекам Microsoft.Net.Http http://nuget.org/packages/Microsoft.Net.Http
HttpClient - гораздо лучший клиент для работы с API.