Håber ikke at det er for sent jeg skriver, men her er min løsning på dit problem :-)
Det som arne siger er sådanset rigtigt, men i Android vil du højst sandsynligt få fejl da kaldet vil køre i din main thread.
Jeg har lavet en nested class inde i min MainActivity, som extender AsyncTask. Det er fordi at man, i Android, ikke skal lave krævene handlinger i main thread. Ved at bruge AsyncTask kan du lave dit kald, asynkront.
public class MainActivity extends AppCompatActivity {
String test;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.testTxt);
new myCall().execute();
}
public class myCall extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... voids) {
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader((new URL("
https://www.verisign.com/")).openConnection().getInputStream()));
StringBuilder res = new StringBuilder();
String line;
while((line = br.readLine()) != null) {
res.append(line);
res.append("\r\n");
}
br.close();
return res.toString();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String aVoid) {
super.onPostExecute(aVoid);
test = aVoid;
textView.setText(test);
}
}
}
Jeg kører kaldet i onCreate metoden: "new myCall.execute();"
doInBackground() metoden kører asynkront og sender stringen videre til onPostExecute som IKKE kører asynkront. Det er via denne metode at du kan sende resultatet tilbage til MainActivity (det kan også gøres på andre måder end det, jeg har gjort).
TextView'et er bare noget jeg har lavet for at outputte resultatet i app'en :-)
Håber det hjælper