AndroidからADO.NET Data Service(REST)を扱う(データ削除編)
AndroidからRESTfulなADO.NET Data Serviceのデータ削除です。
public void Delete() { // URL String mUrl = "http://localhost/RestDataService/RestDataService.svc/M商品マスタ('100')"; // DELETEメソッド生成 HttpDelete deleteMethod = new HttpDelete(mUrl); // ヘッダーを追加 deleteMethod.setHeader("Accept", "application/json"); deleteMethod.setHeader("Content-type", "application/json"); // Httpクライアント DefaultHttpClient httpClient = new DefaultHttpClient(); // 応答 HttpResponse retResponse = null; try { // 要求を出して応答を取得する retResponse = httpClient.execute(deleteMethod); } catch (ClientProtocolException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); return; } catch (IOException e) { // TODO 自動生成された catch ブロック e.printStackTrace(); return; } // 結果を表示 Log.i("データ削除", "ステータス: " + String.valueOf(retResponse.getStatusLine().getStatusCode())); }
削除する場合はDeleteメソッドを使用して、更新編で説明したデータのユニークなURLに要求を出すだけです。成功時のステータスは204が返ります。以上、データ削除のサンプルでした。
というわけでAndroidからRESTfulなADO.NET Data Serviceに対するCRUDはとりあえずできました。Basic認証の問題点は残っていますがおそらくユーザーの権限まわりと思われるのでもう少し調査します。
基本的なCRUDはこれでいいのですが、トランザクションが必要なまとまったデータの更新はRESTfulなサービスからは不可能です。次はWCFのWEBメソッドを呼ぶ方法を勉強したいと思います。