package com.netfluke.sergey.connector; import android.os.Handler; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.widget.TextView; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.PrintStream; import java.net.URL; import java.net.URLConnection; /* This code does not check permissions. Yours should! */ public class MainActivity extends AppCompatActivity { Handler dl; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); dl = new Handler(); } @Override protected void onResume() { super.onResume(); new Thread(new Runnable() { String res = null; // closed over by the post()-ed run(). @Override public void run() { try { URL url = new URL("https://cs65.cs.dartmouth.edu/" ); // URL url = new URL("https://cs65.cs.dartmouth.edu/nametest.pl?name=Sergey"); URLConnection urlConnection = url.openConnection(); InputStream in = urlConnection.getInputStream(); res = copyInputStreamToString(in); } catch( Exception e){ Log.d("THREAD", e.toString()); } dl.post(new Runnable() { @Override public void run() { TextView tv = findViewById(R.id.txt); if( res == null ) tv.setText("Connection failed"); else tv.setText(res); } }); Log.d("NET", (res!=null) ? res : "null response"); } }).start(); } private String copyInputStreamToString(InputStream in) throws IOException { BufferedReader r = new BufferedReader(new InputStreamReader(in)); StringBuilder total = new StringBuilder(); String line; while ((line = r.readLine()) != null) { total.append(line).append('\n'); } return total.toString(); } }