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", "エラー"); } }); } }