edo1z blog

プログラミングなどに関するブログです

Android - ライブラリの使い方

socketでインターネット接続すると、毎回AsyncTaskとか使わなくてはいけなくてめんどくさいので、ライブラリを使うのが一般的らしい。

参考:色んなAndroidアプリが使っているオープンソースライブラリを調べた

おすすめライブラリぽいやつ Retrofit Android Asynchronous Http Client OkHttp

とりあえず、Android Asynchronous Http Clientというのを使ってみる。

ライブラリの読み込み方

参考:Android Studioでライブラリを取り込む3つの方法 外部のリポジトリからローカルに取り込む方法が一番いい気がする。

Android Asynchronous Http ClientのInstallation & Basic Usageというところに、設定方法が書いてあった。

build.gradleのdependeciesに下記を追加する。

dependencies {
  compile 'com.loopj.android:android-async-http:1.4.9'
}

Activityでインポートする。

import com.loopj.android.http.*;

使ってみる

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.loopj.android.http.*;
import cz.msebera.android.httpclient.Header;

public class MainActivity extends AppCompatActivity {
    private static final String url = "http://logicky.com";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        loadAsync();
    }

    private void loadAsync() {
        AsyncHttpClient client = new AsyncHttpClient();
        client.get(url, new DataAsyncHttpResponseHandler() {
            @Override
            public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                String body = new String(responseBody);
                Log.d("TEST", "body=" + body);
            }

            @Override
            public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
                Log.d("TEST", "エラー");
            }
        });
    }
}