ドリンクバーゲン会場

AndroidでHTTP通信32011年11月22日 11時38分58秒

サーバー側のプログラムが完成したので、Android側のプログラムを作成します。
まずは、簡単にソフトを立ち上げたらサーバーに接続し、画面に結果を出すだけの
プログラムを作ります。

サーバーへの接続ですが、いくつか方法があるようなのですが、
今回は、DefaultHttpClientを利用したものと、
HttpURLConnectionを利用したものをつくります。

基本的にはurlを渡して結果を返すだけです。
urlにはパラメータも設定済みで受け取る予定です。

まずは、DefaultHttpClientを使用してGETで接続する場合のサンプルソースです。

*******************************************
public String doGet( String url )
{
HttpResponse response = null;
try
{

HttpGet httpget = new HttpGet( url );
DefaultHttpClient client = new DefaultHttpClient();

response = client.execute( httpget );

int status = response.getStatusLine().getStatusCode();
if ( status != HttpStatus.SC_OK )
throw new Exception( "" );
return EntityUtils.toString( response.getEntity(), "UTF-8" );
}
catch ( Exception e )
{
e.printStackTrace();

return null;
}
}
*******************************************
urlを受け取ったら、executeで通信処理を行っています。
responseで結果を受け取り返しています。

続いてはHttpURLConnectionを利用したサンプルです。
*******************************************
public String doGet2( String addr )
{
HttpURLConnection http = null;
InputStream in = null;
try
{
URL url = new URL(addr);
http = (HttpURLConnection)url.openConnection();
http.setRequestMethod("GET");
http.connect();

in = http.getInputStream();

byte[] line = new byte[1024];
in.read(line);
String src = new String(line);

return src;
}
catch(Exception e)
{

return null;
}
finally
{
try
{
if (http != null) http.disconnect();
if (in != null) in.close();
}
catch (Exception e)
{

}
}

*******************************************

こちらもurlを受け取りconnectで通信を行います。
getInputStreamで結果を受け取り内容を返しています。

次は、メインの作成を行って通信結果を確認したいと思います。