web-dev-qa-db-ja.com

WebClient RESTful Delete

コンソールアプリから呼び出されるシンプルなRestfulサービスがあるので、WebClientを使用しています。この削除の呼び出しが正しいかどうか疑問に思っています。

URLは次のようになりますlocalhost/RestService1/Person/1

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

UploadStringにデータパラメータなしのオーバーロードがないことは好きではありません。空のパラメータを渡すことは、私にはうまくいきません。 「DELETE」に使用するより良い方法はありますか?

WebRequestを使用することもできますが、一貫性を保つためにWebClientを使用したいだけです。

これがWebRequestブロックです

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

両方のブロックは正常に動作しますが、何が最善ですか?またはより良い方法はありますか?

26
Jimmy James

次は私のために働きます:

client.UploadValues(url, "DELETE", new NameValueCollection()); 
16
Simon

Microsoft.Net.Httpクライアントライブラリを取得します http://nuget.org/packages/Microsoft.Net.Http

HttpClientは、APIの操作に使用するはるかに優れたクライアントです。

3
Darrel Miller

WebClientクラスは、安静なapiの消費にはあまり適していません。以前は、このタイプのWebリクエスト向けの RestSharp などのサードパーティライブラリを使用しました。 RestSharpは内部でHttpWebRequestを使用するだけだと確信していますが、それは多くのセマンティクスを提供して、残りのリソースの消費と再利用を容易にします。

3
RTigger