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メソッドを呼ぶ方法を勉強したいと思います。