前回のおさらい
前回は、
具体的には、
- テーブルの作成
- アップグレード処理
- レコードの追加
- レコードの更新
- レコードの読み出し
の説明しました。使いこなすには、
ネットへ接続する
スマートフォンは手軽にネットワークへ接続できるので、
ネットワークへの接続と言っても様々ありますが、
利用するライブラリ
Android OSでHTTP通信を行う場合、
アプリからインターネットへ接続する場合は、
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
GETメソッドの実装
以下は、
doGetメソッドは、
public String doGet( String url )
{
try
{
HttpGet method = new HttpGet( url );
DefaultHttpClient client = new DefaultHttpClient();
// ヘッダを設定する
method.setHeader( "Connection", "Keep-Alive" );
HttpResponse response = client.execute( method );
int status = response.getStatusLine().getStatusCode();
if ( status != HttpStatus.SC_OK )
throw new Exception( "" );
return EntityUtils.toString( response.getEntity(), "UTF-8" );
}
catch ( Exception e )
{
return null;
}
}
では、
まずは、
HttpGet method = new HttpGet( url );
続いて、
DefaultHttpClient client = new DefaultHttpClient();
GETメソッドを実行するには、
第一引数には、
HttpResponse response = client.execute( method );
executeメソッドを実行すると、
以下のように返値を評価し、
int status = response.getStatusLine().getStatusCode();
if ( status != HttpStatus.SC_OK )
throw new Exception( "" );
executeメソッドが正しく実行されたら、
return EntityUtils.toString( response.getEntity(), "UTF-8" );
POSTメソッドの実装
POSTメソッドの実装は、
doPostメソッドは、
public String doPost( String url, String params )
{
try
{
HttpPost method = new HttpPost( url );
DefaultHttpClient client = new DefaultHttpClient();
// POST データの設定
StringEntity paramEntity = new StringEntity( params );
paramEntity.setChunked( false );
paramEntity.setContentType( "application/x-www-form-urlencoded" );
method.setEntity( paramEntity );
HttpResponse response = client.execute( method );
int status = response.getStatusLine().getStatusCode();
if ( status != HttpStatus.SC_OK )
throw new Exception( "" );
return EntityUtils.toString( response.getEntity(), "UTF-8" );
}
catch ( Exception e )
{
return null;
}
}
では、
まずは、
HttpPost method = new HttpPost( url );
次に、
paramEntity.setContentType( "application/x-www-form-urlencoded" );
以降の実装は、
HttpResponse response = client.execute( method );
executeメソッドを実行するとレスポンスコードを返すので、
int status = response.getStatusLine().getStatusCode();
if ( status != HttpStatus.SC_OK )
throw new Exception( "" );
最後は、
return EntityUtils.toString( response.getEntity(), "UTF-8" );
Webサービスと連携する
HTTPプロトコルのGETとPOSTの実装方法が把握できたので、
Webサービスと連携する場合、
Android OSには、
Android OSには、
参考として、
{"subscriptions":[{"id":"feed/http://feeds.feedburner.jp/cnet/rss","title":"CNET Japan","categories":[],"sortid":"BB146333","firstitemmsec":"1230135778214"},{"id":"feed/http://feeds.feedburner.jp/netafull","title":"[N]ネタフル","categories":[{"id":"user/13019141600096008010/label/News","label":"News"}],"sortid":"701D2BE4","firstitemmsec":"1262173951833"}]}
class JSubscriptionsHandler
{
public List<TagObject> entries;
public JSubscriptionsHandler() {
}
public boolean parse( String istring ) {
JSONArray jArray;
try {
jArray = new JSONObject( istring ).getJSONArray( "subscriptions");
int max = jArray.length();
entries = new ArrayList<TagObject>( max );
for ( int i = 0; i < max; i++ )
{
JSONObject jsonObj = jArray.getJSONObject(i);
if( jsonObj.getJSONArray("categories").length() > 0 )
continue;
entries.add( new TagObject(
-1, 0,
jsonObj.getString("title"),
"0",
jsonObj.getString("sortid"),
jsonObj.getString("id") ));
}
return true;
} catch (JSONException e) {
Log.d("NetaShare", e.getMessage());
return false;
}
}
}
まとめ
今回は、
- GETメソッドの実装
- POSTメソッドの実装
- Webサービスとの連携例
GET、
Webサービスとの連携例では、
実際、