2016-01-18 2 views
-1

Я пытаюсь разобрать данные из URL. URL, который я тестирую в мобильном браузере, работает нормально. Я пытаюсь проанализировать данные на AsyncHttpClient. После его выхода на onFailure метод.Android: AsyncHttpClient отвечает на OnFailure

в зависимости добавить

compile 'com.loopj.android:android-async-http:1.4.9' 

и импортировать

import com.loopj.android.http.AsyncHttpClient; 
import com.loopj.android.http.AsyncHttpResponseHandler; 
import cz.msebera.android.httpclient.Header; 

..

AsyncHttpClient client = new AsyncHttpClient(); 
     client.get(url, new AsyncHttpResponseHandler() { 
      @Override 
      public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) { 
       try { 
        pg1.dismiss(); 
        String jsonStr = new String(responseBody, "UTF-8"); 
        Log.e("Tag ","jsonStr "+jsonStr); 

       } catch (UnsupportedEncodingException e) { 
        e.printStackTrace(); 
       } 
      } 

      @Override 
      public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) { 
       pg1.dismiss(); 
       Log.e("Tag ","fetch feeds fail");     
      } 
     }); 

URL-адрес находится в GET метод может любой, пожалуйста, помогите мне решить этот вопрос

+0

'Log.e (« Tag »,« fetch feeds fail »);' <= такой журнал - это useles ... очевидно, вам следует изучить все параметры, переданные в 'onFailure' – Selvin

+0

, этот URL-адрес завершен, что i Я пытаюсь разобрать, моя проблема заключается в том, что он не будет onSuccess вместо его вызова onFailure. Am get Вход в систему onFailure @ Selvin –

ответ

0

Просто напечатайте отзывBody in onFailure() метод. если это тайм-аут; то вы можете установить client.setTimeout (30000); перед client.get().

OR

проверить ваш адрес; если он дает ответ в браузере или нет, а также проверяет ключи и значения. который может быть сервером, не дает вам никакого ответа.

+0

on onFailure am получает null как responceBody @Sachin salunkhe –

+0

проверить ваш URL; если он дает ответ в браузере или нет, а также проверяет ключи и значения. который может быть сервером, не дает вам никакого ответа. –

+0

Я проверяю с помощью браузера и плагина почтальона. Я получаю результат, также получаю результат в doinBackground(), onPostExecue. Но я не получаю результат в методе AsyncHttpClient @Sachin salunkhe –

0

Я делаю то же самое, используя внутренний класс extends AsncyTask.

private class JSONWeatherTask extends AsyncTask<String, Void, Weather> { 

    @Override 
    protected Weather doInBackground(String... params) { 

     Weather weather = new Weather(); 
     data = ((new WeatherHttpClient()).getWeatherData(params[0], params[1])); 

     Log.d("DATA", data); 

     try { 
      weathers = JSONWeatherParser.getWeather(data); 

      // Let's retrieve the icon 
      weather.iconData = ((new WeatherHttpClient()).getImage(weather.currentCondition.getIcon())); 

     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     return weather; 

    } 

внутри класса WeatherHttpClient Я получаю данные с использованием URL-адреса с HttpUrlConnection.

Смежные вопросы