Я звоню в URL для получения данных и вставки в мою базу данных. Я не предоставил интернет-проверку. Если я открываю приложение без подключения к Интернету, он работает плавниками, появляется всплывающее окно. Но если я подключусь к URL-адресу, когда у меня есть интернет, а интернет идет в середине процесса, мое приложение вылетает, как его исправить?Приложение для Android Сбой при отсутствии интернета при подключении к серверу
Мой код:
public class DoPOSTPen extends AsyncTask<String, Void, Boolean> implements OnCancelListener {
@SuppressWarnings("deprecation")
@Override
protected Boolean doInBackground(String... arg0) {
try {
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://testapi.pharmeazy.in/api/MediEazy/GetAllInvoices");
request.addHeader("Authorization", " basic NDlyaWNva2pvaWQwM2ptZGlraWRES09qZGZpamRmNzY0dDA4NWp6MzcyOHdzMkpJS1M4MTA0c2NvcTJ1OTRkazphd0VEMzI3MkA4WWFzZEU3MjI3IUBeIypVSFMq");
request.setHeader(HTTP.CONTENT_TYPE, "application/json");
System.out.println("PRIINTING");
HttpResponse response = null;
try {
response = client.execute(request);
Log.d("Response of GET request", response.toString());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
InputStream inputStream = response.getEntity().getContent();
String result = Utils.convertInputStreamToString(inputStream);
System.out.println("server response is :" + result + "\n" + inputStream);
try {
ja=new JSONArray(result);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
catch (Exception e) {
Log.e("ClientServerDemo", "Error:", e);
toastText2 = "Connection Error !";
}
return true;
}
protected void onPreExecute() {
//display the progress dialog
mProgressHUD2 = ProgressHUD.show(Med.this,"Getting Rejected Orders", true,false,this);
}
@Override
protected void onPostExecute(Boolean valid) {
mProgressHUD2.dismiss();
// if server response is successful
for(int i=0;i<ja.length();i++){
try {
jo=ja.getJSONObject(i);
db.insertLabel(jo.get("Id").toString(), jo.get("CustomerId").toString(), jo.get("PharmacyId").toString(),
jo.get("DeliveryAddress").toString(), jo.get("DeliveryName").toString(),
jo.get("OrderStatus").toString(),jo.get("PrescriptionAttached").toString(),jo.get("Discount").toString());
}
catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
new DoPOST3().execute();
}
Пожалуйста, помогите
еще один NPE .. .. просто изучайте программирование ... LINT d idnt упоминает, что в этой строке 'InputStream inputStream = response.getEntity(). getContent()' 'response' может быть' null'? http://ideone.com/oGEZ4x – Selvin
HEHE Я снимаю ненужный код и указываю, где ваша проблема в примере ... если вы все еще не хотите, просто сдадитесь программированием и попробуйте свою удачу с футболом. также вы должны научиться спрашивать ... этот вопрос не по теме: * Вопросы, требующие помощи для отладки («почему этот код не работает?») должны включать в себя желаемое поведение **, конкретную проблему или ошибку ** и кратчайший код, необходимый для его воспроизведения в самом вопросе * – Selvin
также удалите свою учетную запись малыша и прекратите делать серийные выдержки ... в других случаях вам будет запрещено несколько дней ... – Selvin