Я попытался выполнить http GET, используя следующий код. Он отлично работает со строкой URL-адреса https, а не с URL-адресом http.
Я не понимаю, почему. Дается IOException. Вы можете помочь? Я пытался получить один и тот же URL-адрес, например, Google, с и без https, последний работает. В чем проблема? Я добавил в манифест разрешения пользователей для доступа к inte rnet.
package com.example.httptest;
import android.os.AsyncTask;
import android.util.Log;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
class GetData extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... params) {
HttpURLConnection urlConnection = null;
String result = "";
try {
//URL url = new URL("https://www.fineco.it");
URL url = new URL("https://www.google.com");
Log.e("MAU","0");
urlConnection = (HttpURLConnection) url.openConnection();
Log.e("MAU","1");
int code = urlConnection.getResponseCode();
Log.e("MAU","2");
if (code == 200) {
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
if (in != null) {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
String line = "";
while ((line = bufferedReader.readLine()) != null)
result += line;
}
in.close();
}
Log.e("MAU",result);
return result;
} catch (MalformedURLException e) {
Log.e("MAU","Malformed URL");
e.printStackTrace();
} catch (IOException e) {
Log.e("MAU","IOException");
e.printStackTrace();
} finally {
urlConnection.disconnect();
}
return result;
}
}