読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

Androidにおける通信処理

概要

Androidにおける通信処理のやり方をまとめる

詳細

HttpGet, DefaltHttpClient等はAPI22で非推奨になっているためURLクラスのopenConnection()メソッドを使ったやり方でまとめる
openConnection()では通信をInputStreamで扱うため、それについては以下を参照tiro105.hateblo.jp

通信するのでmanifestに以下追加

    <uses-permission android:name="android.permission.INTERNET"/>
public class HttpTestGet extends AsyncTask<Void, Void, String> {
    TextView textView;

    public HttpTestGet(TextView text) {
        textView = text;
    }

    @Override
    protected String doInBackground(Void... param) {
        try {
            URL url = new URL("http://www.wings.msn.to/");
            URLConnection connection = url.openConnection();

            BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "S-JIS"));

            StringBuilder sb = new StringBuilder();
            String line;

            while ((line = in.readLine()) != null) {
                sb.append(line);
            }

            return sb.toString();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

        return "";
    }

    @Override
    protected void onPostExecute(String result) {
        textView.setText(result);
    }

結果
f:id:tiro105:20150412111822p:plain

以前のHttpGetと違って入出力がstreamで統一されたので扱いやすくなった感じ

参考

AndroidエンジニアのためのモダンJava

AndroidエンジニアのためのモダンJava

URLConnection | Android Developers