2012-09-11 18 views
20

私は簡単なRestfulサービスをConsoleアプリケーションから呼び出すので、WebClientを使用しています。この削除の呼び出しが正しいかどうか疑問に思っています。私はそのUploadStringがデータパラメータを指定せずに過負荷を持っていない好きではないWebClient安心して削除

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

はlocalhost/RestService1 /人/ 1 よう

URLが見えます。空のパラメータを渡すことは私にはうまくいきません。 "DELETE"のためのより良い方法がありますか?

私はWebRequestを使うことができましたが、WebClientを使用して一貫性を維持したいと考えています。ここで

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

WebRequestクラスブロックで両方のブロックが正常に動作しますが、何がベストですか?それとも良い方法がありますか?

+0

も参照してください:http://stackoverflow.com/questions/2539394/rest-http-delete-and-parameters –

+0

も参照します。http://のstackoverflowを。 com/questions/512279/restful-delete-strategy –

+0

これらの参考文献のDELETEとRESTfulとの関係以外に、私は 'WebClient'が実際にDELETEのセマンティクスを与えるとは思わない。 'Webclient'は' WebRequest'( 'HttpWebRequest')を' 'HttpWebRequest''を使って直接読みやすくしています。 –

答えて

3

WebClientクラスは安らかなAPI消費にはあまり役立ちません。以前はRestSharpのようなサードパーティのライブラリを使用していましたが、これはこのタイプのWebリクエストに向けたものです。 RestSharpはHttpWebRequestを使っているだけですが、残りのリソースを使いやすくして再利用するためのセマンティクスがたくさんあります。

+0

私はNewtonsoft JsonでWebClientを使用しています。使い方はとても簡単です。私はRestSharpを調べます。ありがとう –

3

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

のHttpClient APIでの作業に使用するより良いクライアントです。私にとって

+0

このパッケージは、Visual Studio 2010ではサポートされていません。このパッケージを使用するライブラリを使用する場合、.NET Framework 4.5または.NET for Windows Storeアプリケーションを対象とするプロジェクトにのみ必要です。 – juFo

+0

@juFo VS2010および.net 4.0でサポートされています。私はあなたがそうでないと考える理由はわかりません。 –

+0

あなたが提供したリンクを引用しました:http://nuget.org/packages/Microsoft.Net.Http – juFo

10

次作品:

client.UploadValues(url, "DELETE", new NameValueCollection()); 
+0

さらに、パラメータ(api_keyなど)を追加する必要がある場合は、URLのクエリ文字列を使用してパラメータを指定できます。 – MattGerg

関連する問題