Retrofit 2 поисковая аннотация - PullRequest
0 голосов
/ 11 июня 2018

Я хотел бы вызвать GitHub API для возврата списка репозиториев на основе произвольного параметра поиска, подобного этому: https://api.github.com/search/repositories?q=custom_search_param

Таким образом, custom_search_param объявлен во время выполнения.

Я сделалэтот интерфейс:

public interface GitHubClient {

    String BASE_URL = "https://api.github.com/";

    @GET("search/repositories")
    Call<GitHubRepo> getReposForSearchParam (@Query("q") String custom_search_param);
}

Я вызываю его в MainActivity onCreate следующим образом:

Retrofit retrofit = new Retrofit.Builder().baseUrl(GitHubClient.BASE_URL).addConverterFactory(GsonConverterFactory.create()).build();
    GitHubClient gitHubClient = retrofit.create(GitHubClient.class);

    Call<GitHubRepo> call = gitHubClient.getReposForSearchParam("tetris");
    call.enqueue(new Callback<GitHubRepo>() {
        @Override
        public void onResponse(Call<GitHubRepo> call, Response<GitHubRepo> response) {
            Log.d("resp",response.toString());
            Log.d("respBody",response.body().toString());
        }

        @Override
        public void onFailure(Call<GitHubRepo> call, Throwable t) {
            Log.e("wentWrong", t.getMessage());
        }
    });

И я всегда получаю onFailure ответ с этим сообщением:

E / wentWrong: javax.net.ssl.SSLProtocolException: рукопожатие SSL прервано: ssl = 0xb8679dd0: сбой в библиотеке SSL, обычно ошибка протокола: 1407742E: процедуры SSL: SSL23_GET_SERVER_HELLO: версия протокола оповещения tlsv1 (external / openssl / ss)/s23_clnt.c:741 0x9db10901: 0x000

00000)

Кто-нибудь знает, что здесь не так, и если анотации интерфейса GitHubClient должны объявляться по-другому?

1 Ответ

0 голосов
/ 11 июня 2018

, поскольку GitHub api отключил TLSv1.1 , вам необходимо устройство или клиент, который поддерживает TLSv1.1 как минимум.Так что с Android-устройством ниже Android 4.4 это не будет работать.Смотри здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...