С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 12

Retrofit trouble

05.08.2017, 19:09. Показов 2260. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
По тз нужно написать POST запрос через retrofit, Я создал его, но приложение возвращало нулевой результат. Посмотрев по логам, понял, что почему-то вместо POST запроса выполняется GET. Как это исправить
Вот код (Токен меняю в коде понятно почему)


Java
1
2
3
4
5
public interface ApiInter {
 
@POST("/all_games")
Call<Allgamesone> getJSON(@Query("token") String token, @Query("to") String to, @Query("from") String from);
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Retrofit client = new Retrofit.Builder()
                .baseUrl("https://makub.ru/api/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
 ApiInter service = client.create(ApiInter.class);
        Call<Allgamesone> call = service.getJSON("666","5","10");
        call.enqueue(new Callback<Allgamesone>() {
            @Override
            public void onResponse(Call<Allgamesone> call, Response<Allgamesone> response) {
                if (response.isSuccessful()){Toast.makeText(getActivity(), response.toString(), Toast.LENGTH_SHORT).show();
                Log.d("num",response.toString());
                }
                Log.d("num",response.toString());
            }
 
            @Override
            public void onFailure(Call<Allgamesone> call, Throwable t) {
            }
        });



По логу выдает
Response{protocol=http/1.1, code=404, message=Not Found, url=https://makub.ru/all_games?token=666&to=5&from=10}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.08.2017, 19:09
Ответы с готовыми решениями:

Библиотека Retrofit
Мне нужно освоить библиотеку Retrofit.Я нашол урок https://www.youtube.com/watch?v=c5HX_GoyaDs. Я постарался повторить и у меня возникли...

Retrofit Recyclerview
Здравствуйте, уважаемые форумчане. Помогите добавить onScroll в RecyclerView. Вот код public class MainActivity extends...

Toast trouble
Все Доброго времени суток! Начал учить андроид по книге, там приводился код для создания кастомного тоста, код написал точь в точь , но на...

8
 Аватар для YuraAAA
1605 / 1337 / 291
Регистрация: 25.10.2009
Сообщений: 3,487
Записей в блоге: 2
06.08.2017, 12:11
Angry_cat111, уточните АПИ. Не get, ни post не работает
0
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 12
06.08.2017, 12:19  [ТС]
Ну это потому что токен я указал неправильный. На Postman все работает апи https://makub.ru/api/all_games token d21d9ebb1f4199faf839368d27804b45 to 5 from 0 Эти данные работаю 100%
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
06.08.2017, 13:08
в интерфейсе надо убрать лидирующий слеш
Code
1
@POST("all_games")
иначе он при запросе срежет весь путь у baseurl

это ведь по логу видно, что запрос идет на url=https://makub.ru/all_games
а не url=https://makub.ru/api/all_games

но я проверил, там все равно приходит странный (вообще пустой) ответ от сервера и ретрофит проваливается в onFailure
0
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 12
06.08.2017, 14:00  [ТС]
Pablito, Это странно, потому что Postman нормально работает и выдает нормальные данные
Миниатюры
Retrofit trouble  
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
06.08.2017, 14:09
на скриншоте параметры передаются в Body, а в коде из первого сообщения - как query параметры
0
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 12
06.08.2017, 14:15  [ТС]
Так, а как тогда в коде это исправить? Потому что у @Body нет метода value. Или просто в функцию сам запрос вписывать надо?

Добавлено через 3 минуты
Pablito, вопрос даже больше в том, как параметры засовывать в этот request?
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
06.08.2017, 14:21
Лучший ответ Сообщение было отмечено Angry_cat111 как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
import retrofit2.Call;
import retrofit2.http.Field;
import retrofit2.http.FormUrlEncoded;
import retrofit2.http.POST;
 
public interface ApiInter {
 
    @FormUrlEncoded
    @POST("all_games")
    Call<Allgamesone> getJSON(@Field("token") String token, @Field("to") String to, @Field("from") String from);
}
0
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 12
06.08.2017, 14:31  [ТС]
Все, спасибо, ты мне очень помог)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.08.2017, 14:31
Помогаю со студенческими работами здесь

Прокладывание маршрута и Retrofit
Добрый день. Есть проблема с реализацией маршрутов в приложении. Суть проста: есть 2 точки, необходимо их соединить маршрутом. На основе...

Retrofit 2 post запрос
Делал реализацию клиент-сервер, в андроид при помощи retrofit. и встретился с проблемой как реализовать POST запрос. ( GET запрос у меня...

OPTIONS запросы в Retrofit
Всем привет, никто не сталкивался с данным вопросом? Я нашел в репозитории ретрофита какое-то упоминание но я не знаю как его примернить...

Retrofit, JSON, @POST, @GET
Уважаемые программисты, прошу вашей помощи! Хожу на курсы по разработке мобильных приложений, месяц, как хожу, мало еще что знаю, но...

Ошибка JSON в Retrofit
Всем привет! Недавно начал изучение Retrofit как известной библиотеки для REST-запросов. Там всё сильно автоматизировано, например,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru