Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WebClient restful Delete

I have a simple Restful service being called from a console app so am using WebClient. I am wondering if this call for Delete is correct.

The url looks like localhost/RestService1/Person/1

using (var client = new WebClient())  {     client.UploadString(url, "DELETE", ""); } 

I don't like that UploadString does not have an overload without a data parameter. The passing of an empty parameter is not sitting well with me. Is there a better method to use for a DELETE?

I could use WebRequest but I want to just use WebClient to keep it consistent.

Here is the WebRequest block

var request = WebRequest.Create(url); request.Method = "DELETE"; var response = (HttpWebResponse)request.GetResponse(); 

Both blocks work fine but what is best? Or is there a better way?

like image 700
Jimmy James Avatar asked Sep 11 '12 19:09

Jimmy James


2 Answers

The following works for me:

client.UploadValues(url, "DELETE", new NameValueCollection());  
like image 50
Simon Avatar answered Sep 30 '22 05:09

Simon


The WebClient class doesn't really lend well to restful api consumption, I've used 3rd party libraries like RestSharp in the past that are geared more towards this type of web request. I'm pretty sure RestSharp just uses HttpWebRequest under the covers, but it provides a lot of semantics that make consuming and reusing rest resources easier.

like image 33
RTigger Avatar answered Sep 30 '22 06:09

RTigger