Я пытаюсь прочитать HTML-код из URL-адреса в строку как часть приложения для Android.Все отлично работает, когда я использую "https://www.google.com",, но когда я использую веб-сайт, с которого я хочу получить данные," https://bmorgan17.github.io/DCD/resources/data_raw.html" Я получаю эту ошибку.
Error: javax.net.ssl.SSLProtocolException: SSL handshake aborted: ssl=0x5c959090: Failure in SSL library, usually a protocol error
error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure (external/openssl/ssl/s23_clnt.c:741 0x59282c38:0x00000000)
Вот мой код:
public class RecipeActivity extends AppCompatActivity {
static String result;
static private class RetrieveData extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urlStr){
// do stuff on non-UI thread
StringBuilder htmlCode = new StringBuilder();
String LOG_TAG = "APP";
try{
URL url = new URL(urlStr[0]);
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
htmlCode.append(inputLine);
}
in.close();
} catch (Exception e) {
e.printStackTrace();
Log.wtf(LOG_TAG, "Error: " + e.getMessage());
Log.wtf(LOG_TAG, "HTML CODE: " + htmlCode);
}
Log.wtf(LOG_TAG, "HTML CODE: " + htmlCode);
return htmlCode.toString();
}
@Override
protected void onPostExecute(String htmlCode){
// do stuff on UI thread with the html
super.onPostExecute(htmlCode);
result = htmlCode;
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.activity_recipe);
TextView out = findViewById(R.id.tvHttp);
new RetrieveData().execute("https://bmorgan17.github.io/DCD/resources/data_raw.html");
out.setText(result);
}
}
Если бы кто-нибудь мог мне помочь, было бы здорово!
Редактировать:
- Galaxy Nexus
- Версия Android: 4.2.2
- Мин API: 17
Я использую это как тестовый телефон, потому что этонамного быстрее, чем эмулятор.Если мне нужно сделать эмулятор для нового телефона, пожалуйста, скажите мне.