短縮URLサービス bit.ly が REST API をサポートしていたので、
ソースコードを書いて Android から使ってみました。

準備
bit.ly のREST API を使用するには API Key 発行用のアカウントが必要なため、
以下のリンク先からアカウントを作成(Sign up)してください。
http://bit.ly/account/register?rd=/
API 解説
bit.ly の REST API ドキュメントは、以下のリンク先にあります。
http://code.google.com/p/bitly-api/wiki/ApiDocumentation
サポートされている API は、以下の 5 種類であり、
HTTP GET リクエストを発行すると、JSON(デフォルト)、または、XML の結果を返してくれます。
- shorten(短縮)
- expand(展開)
- info(情報取得)
- stats(参照情報取得)
- errors(エラーコード取得)
サンプルソースコード
以下、shorten(短縮)を使用するサンプルソースコードです。
紙面の都合上、ハードコード文字列、エラーチェックなしとなっています。
ここでは、bit.ly のサンプルソースとして紹介していますが、
殆どの REST API はこのような流れで実装できるので、REST のサンプルとしてお使い下さい^^;
String shortUrl = ""; // 結果格納用文字列
String longUrl = "http://www.google.co.jp/search?q=みっくみく"; // ここに短縮したいURLを記述する
String login = "adakodaXXXXXXXXXX"; // ここにbit.lyアカウントを記述する
String apiKey = "R_81b567b1537c41e4783ff5XXXXXXXXXX"; // ここにapiKeyアカウントを記述する
// HTTP GET リクエスト文字列作成
Uri.Builder uriBuilder = new Uri.Builder();
uriBuilder.path("http://api.bit.ly/shorten");
uriBuilder.appendQueryParameter("version", "2.0.1");
uriBuilder.appendQueryParameter("longUrl", Uri.encode(longUrl));
uriBuilder.appendQueryParameter("login", login);
uriBuilder.appendQueryParameter("apiKey", apiKey);
String uri = Uri.decode(uriBuilder.build().toString());
try {
// HTTP GET リクエスト
HttpUriRequest httpGet = new HttpGet(uri);
DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
HttpResponse httpResponse = defaultHttpClient.execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
// HTTP レスポンス
String entity = EntityUtils.toString(httpResponse.getEntity());
// JSON デコード
JSONObject jsonEntity = new JSONObject(entity);
if (jsonEntity != null) {
JSONObject jsonResults = jsonEntity.optJSONObject("results");
if (jsonResults != null) {
JSONObject jsonResult = jsonResults.optJSONObject(longUrl);
if (jsonResult != null) {
// 結果の代入
shortUrl = jsonResult.optString("shortUrl");
Log.v("shortUrl", shortUrl); // http://bit.ly/5uavMY
}
}
}
}
} catch (IOException e) {
} catch (JSONException e) {
}
