dependencies { ... compile 'com.squareup.okhttp3:okhttp:3.5.0' compile 'com.jakewharton:butterknife:8.4.0' compile 'com.jakewharton:butterknife-compiler:8.4.0' }
package kr.domain.testokhttp; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.widget.Button; import android.widget.TextView; import java.io.IOException; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; import okhttp3.MediaType; import okhttp3.OkHttpClient; public class MainActivity extends AppCompatActivity { private final static String TAG = MainActivity.class.getSimpleName(); ProgressDialog mProgressDialog; OkHttpClient client = new OkHttpClient(); public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8"); @BindView(R.id.textView) TextView textView; @BindView(R.id.button) Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ButterKnife.bind(this); Log.d(TAG, new Exception().getStackTrace()[0].getMethodName() ); } @OnClick(R.id.button) void onCallClick(){ Log.d(TAG, new Exception().getStackTrace()[0].getMethodName() ); if (isNetworkConnected()) { mProgressDialog = new ProgressDialog(this); mProgressDialog.setMessage("Please wait..."); mProgressDialog.setCancelable(false); mProgressDialog.show(); makeRequestWithOkHttp("https://raw.github.com/square/okhttp/master/README.md"); } else { new AlertDialog.Builder(this) .setTitle("No Internet Connection") .setMessage("It looks like your internet connection is off. Please turn it on and try again") .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }).setIcon(android.R.drawable.ic_dialog_alert).show(); } } private boolean isNetworkConnected() { ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); return networkInfo != null && networkInfo.isConnected(); } private boolean isWifiConnected() { ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connMgr.getActiveNetworkInfo(); return networkInfo != null && (ConnectivityManager.TYPE_WIFI == networkInfo.getType()) && networkInfo.isConnected(); } private void makeRequestWithOkHttp(String url) { okhttp3.Request request = new okhttp3.Request.Builder().url(url).build(); client.newCall(request).enqueue(new okhttp3.Callback() { @Override public void onFailure(okhttp3.Call call, IOException e) { e.printStackTrace(); } @Override public void onResponse(okhttp3.Call call, okhttp3.Response response) throws IOException { final String result = response.body().string(); // 4 MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { try { mProgressDialog.hide(); textView.setText(result); } catch (Exception e) { e.printStackTrace(); } } }); } }); } }
반응형
'ide > androidstudio' 카테고리의 다른 글
RxAndroid (0) | 2017.01.03 |
---|---|
ReactivceX, RxAndroid (0) | 2017.01.02 |
Android Networking Connect (0) | 2016.12.27 |
현재 메소드 명 (0) | 2016.12.23 |
com.jakewharton:butterknife:8.4.0 @BindView 에러 (0) | 2016.12.22 |