package cz.msebera.android.httpclient.test;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

import java.lang.ref.WeakReference;

import cz.msebera.android.httpclient.HttpHost;
import cz.msebera.android.httpclient.client.methods.CloseableHttpResponse;
import cz.msebera.android.httpclient.client.methods.HttpGet;
import cz.msebera.android.httpclient.impl.client.CloseableHttpClient;
import cz.msebera.android.httpclient.impl.client.HttpClients;
import cz.msebera.android.httpclient.util.EntityUtils;

public class MainActivity extends Activity {

    TextView status_text;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        status_text = (TextView) findViewById(R.id.status_text);
        new HttpTest(this).execute();
    }

    static class HttpTest extends AsyncTask<Void, Void, String> {
        WeakReference<MainActivity> link;

        HttpTest(MainActivity ma) {
            super();
            this.link = new WeakReference<>(ma);
        }

        @Override
        protected String doInBackground(Void... voids) {
            String ret = null;
            CloseableHttpClient chc = HttpClients.createDefault();
            try {
                CloseableHttpResponse chr = chc.execute(HttpHost.create("https://httpbin.org"), new HttpGet("/headers"));
                ret = EntityUtils.toString(chr.getEntity());
                chr.close();
                chc.close();
            } catch (Exception e) {
                Log.e("HttpTest", e.getMessage(), e);
                ret = e.getMessage();
            }
            return ret;
        }

        @Override
        protected void onPostExecute(String s) {
            if (this.link.get() != null) {
                this.link.get().status_text.setText(s);
                this.link.clear();
            }
        }
    }
}