@newdancer

Как парсить данные с помощь библиотеки Retrofit?

Как парсить данные с помощь библиотеки Retrofit?
Пробовал реализовать подобным способом:
public class MainActivity extends AppCompatActivity
{
    final String TAG = "myLogs";

    EditText editVvodText;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Создаем интерфейс для работы с API
        RestAdapter restAdapter = new RestAdapter.Builder()
                .setEndpoint("http://api.mymemory.translated.net")
                .build();
        final API service = restAdapter.create(API.class);

        editVvodText = (EditText) findViewById(R.id.editVvodText);
        editVvodText.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {

            }

            @Override
            public void afterTextChanged(Editable s)
            {
                if(editVvodText.getText().length()>5)
                {
                    service.getTranslate(editVvodText.getText().toString(), "en|ru");
                }

            }
        });
    }
}

интерфейс с запросом выглядит так:
public interface API
{
    @GET("/get")
    Response getTranslate(@Query("q") String word, @Query("langpair") String perevod);
}

Запрос нужно выполнять по следущей ссылке:
http://api.mymemory.translated.net/get?q={ЗНАЧЕНИЕ1}&langpair={ЗНАЧЕНИЕ2}
по этой ссылке идет возрат json 
http://api.mymemory.translated.net/get?q=Hello!&langpair=en|ru

Что делаю не так? натолкните на мысль?
  • Вопрос задан
  • 905 просмотров
Пригласить эксперта
Ответы на вопрос 2
@aol-nnov
Ответ написан
Комментировать
@midikko
Java-ee + Android разработчик
Скорее всего какие то проблемы при получении ответа. Проверьте что сервер возвращает вам валидный json, а так же включите дебаг ретрофита. включается добавлением парметра при инициализации.

делается это примерно так

final OkHttpClient okHttpClient = new OkHttpClient();
        okHttpClient.setReadTimeout(15, TimeUnit.SECONDS);
        okHttpClient.setConnectTimeout(15, TimeUnit.SECONDS);
        RestAdapter retrofit = new RestAdapter.Builder()
                .setEndpoint("http://localhost:5486")
                .setClient(new OkClient(okHttpClient))
                .setLogLevel(RestAdapter.LogLevel.FULL)
                .build();
        RFIDService service = retrofit.create(RFIDService.class);


после этого увидите и запрос и ответ, и все должно встать на свои места.

P.S. Ловить и логировать try-catch'ем экзепшены так же никто не запрещает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы