Страницы

Поиск по вопросам

четверг, 13 июня 2019 г.

Новая почта(Android API)

Не получается получить доступ к API новой почты.
Использую Retrofit для работы с сетью.
Вот таким образом формирую интерфейс:
@FormUrlEncoded @POST("/v2.0/json") Call getSity(@Field("apiKey") String key, @Field("modelName") String modelName, @Field("calledMethod") String calledMethod);
Ну и затем обращаюсь к серверу:
Call call = api.getSity("key","InternetDocument","getDocumentList"); call.enqueue(new Callback() { @Override public void onResponse(Call call, Response response) { Log.d("TAG", "Success"); }
@Override public void onFailure(Call call, Throwable t) { Log.d("TAG", "Fail"); } });
ну и собственно инициализация:
Gson gson = new GsonBuilder().create(); Retrofit retrofit = new Retrofit.Builder() .client(getUnsafeOkHttpClient()) .baseUrl("https://api.novaposhta.ua") .addConverterFactory(GsonConverterFactory.create(gson)) .build(); API api = retrofit.create(API.class);
В ответ ловлю:
java.net.SocketTimeoutException: failed to connect to api.novaposhta.ua/185.128.233.69 (port 8883) after 10000ms
Увеличивал время ожидания до 60 секунд, не помогло. Да и данных там не так много чтобы тянуть их дольше минуты
UPD:


Ответ

Попробуйте подергать API через Postman это поможет проверить насколько правильно вы указываете ключи, заголовки. Извините, не силен в android и java, ничего не могу сказать по вашему коду, но вообще ошибка таймаута это скорее серверные проблемы. Вообще странный порт, вы пробовали менять на 80 или 443?
Ну Вам же вернуло ошибку. Скорее всего она заключается в том, что вы отправляете данные в url, а надо в body выставить raw и в нем сформировать джисон согласно описанию в доках, добавить хоть какие-нить хеды и отправить это все на https://api.novaposhta.ua/v2.0/json

Комментариев нет:

Отправить комментарий