Я создал этот код для загрузки веб-контента и использовал asynctask. Когда URL-адрес начинается с «http», он не возвращает мне ошибку anythink only в журнале cat.
*"09-12 22:19:25.679 6894-6921/company.krystian.guessthecelebrity W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
09-12 22:19:25.754 6894-6921/company.krystian.guessthecelebrity E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da glUtilsParamSize: unknow param 0x000082da"*
Но когда URL-адрес начинается с «https», он возвращает мне часть контента и другую ошибку.
*"09-12 22:13:36.330 3057-3784/company.krystian.guessthecelebrity W/OpenGLRenderer: Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...
09-12 22:13:36.390 3057-3784/company.krystian.guessthecelebrity E/eglCodecCommon: glUtilsParamSize: unknow param 0x000082da glUtilsParamSize: unknow param 0x000082da"*
public class MainActivity extends AppCompatActivity {
public class DownloadTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
String result = "";
URL url;
HttpURLConnection urlConnection = null;
try {
url = new URL(urls[0]);
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = urlConnection.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
int data = reader.read();
while (data != -1) {
char current = (char) data;
result += current;
data = reader.read();
}
return result;
} catch (Exception e) {
e.printStackTrace();
return "Fail";
}
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
DownloadTask task = new DownloadTask();
String result = null;
try {
result = task.execute("http://www.ecowebhosting.co.uk/").get();
Log.i("Contents of URL", result);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
ЭТО несвязанные сообщения от GPU.
О, и НИКОГДА не используйте asynctask.execute (). Get (). Особенно в потоке пользовательского интерфейса. Это остановит ваше приложение, вероятно, вас убьет сторожевой таймер. Вместо этого любой код, которому нужен результат, следует поместить в onPostExecute. (иногда это нормально для потока без пользовательского интерфейса, но он настолько исчезающе мал, что, если вы не знаете, что делаете, просто не делайте этого).




Это мой рабочий код, вырезанный, пожалуйста:
private class GetRegisterDateAsyncTask extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... voids) {
String result = "";
try {
URL url = new URL("YOUR URL HERE");
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()));
String inputLine;
final StringBuffer buffer = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
buffer.append(inputLine);
}
in.close();
result = buffer.toString();
} catch (MalformedURLException e) {
Crashlytics.logException(e);
return "";
} catch (IOException e) {
Crashlytics.logException(e);
return "";
} catch (Exception e) {
Crashlytics.logException(e);
return "";
}
return result;
}
@Override
protected void onPostExecute(String result) {
try {
// check and use the result here
...
} catch (Exception e) {
Crashlytics.logException(e);
}
}
}
а это код вызова:
GetRegisterDateAsyncTask registerDateAsyncTask = new GetRegisterDateAsyncTask();
registerDateAsyncTask.execute();
Удачи )
Он также возвращает только часть контента.
все время один и тот же контент или разный контент?
Все время один и тот же контент зависит от веб-сайта, иногда его 5 строк, иногда 25% от полного контента.
это может означать, что есть части страницы с отложенной загрузкой
Я только что попробовал ваш URL-адрес, и все в порядке - весь контент успешно извлечен, в вашем приложении может быть что-то еще, что может заблокировать выполнение задачи
для гарантии создайте новый проект и протестируйте только эту задачу, пожалуйста
Я сделал новый проект и такая же ситуация
Похоже, что с вашей средой разработки что-то не так. Вы используете Android Studio? Я могу отправить вам свой рабочий проект, если вы дадите мне письмо, пожалуйста,
Просто вставьте сюда ошибки вместо изображений