Я стремлюсь к соединению двух следующих элементов:
1) Получение списка строк символьной переменной, которая привязана к значению "HOSE" из URL https://finfo -api.vndirect.com.vn / stocks .
2) Вывод списка строк на шаге 1) в качестве ввода пути для модифицированного сервиса, который я пишу и вызываю VpbsService с кодом:
Я могу выполнить шаг 1), но никогда не пройду шаг 2. Код для шага 1) и шага 2), как показано ниже
Для шага 1)
strSyms = getStrSymbols ("HOSE") .toString ();
, где public static StringBuilder getStrSymbols(String floorName) {
StringBuilder sb = new StringBuilder();
VndinfoService vndService = new RetrofitVndinfoService().create();
vndService.vndGet()
.map(u->u.getData())
.toObservable()
.subscribeOn(Schedulers.io())
.flatMap(Observable::fromIterable)
.filter(u->u.getFloor().equals(floorName))
.map(s->s.getSymbol())
.subscribe(u->sb.append(u + ","));
return sb;
}
Для шага 2) VpbsService vpbsService = new RetrofitVpbsService (). create ();
Observable.interval(0, 60, TimeUnit.SECONDS)
.flatMap(
i -> vpbsService.vpbsGet(strSyms)
.toObservable()
)
..continue
urlBase для RetrofitVndinfoService - "https://finfo -api.vndirect.com.vn / ", а urlBase для RetrofitVpbsService - "https://mobitrade.vpbs.com.vn:8080/". На самом деле, я могу успешно соединить два шага в Java Eclipse, носбой в Android. Проблема в том, что strSyms не содержит символов. Для VpbsService я использую
@GET("getliststockdata/{symbols}")
@Headers({"Accept: application/json"})
Говорите четко, например, если strSyms = "AAA, APC", можно получить URL-адрес https://mobitrade.vpbs.com.vn:8080/getliststockdata/AAA,APC,".В этом случае
vpbsService.vpbsGet(strSyms) will work fine.