我正在尝试使用字符串列表进行查询,但它只为列表的第一个索引获取数据。
(还有其他币种可以查询,只是给BTC带来结果) 搜索了很多,都解决不了。问题出在哪里?
结果:
D/MainActivity: onResponse:BTC price: 54340.91386472
API接口:
public interface CryptoApi {
@GET("prices")
Call<List<CryptoModel>> getData(@Query("key") String key);
///currencies/ticker?key=OURKEY&ids=BTC
@GET("currencies/ticker")
Call<List<CryptoModel>> getDataWithName(
@Query("key") String key,
@Query("ids") List<String> ids
);
}
MainActivity.class:
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
private String BASE_URL = "https://api.nomics.com/v1/";
List<CryptoModel> cryptoModelList = new ArrayList<>();
List<String> trackedCryptoCurrencyNames = new ArrayList<>();
CryptoApi cryptoApi;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build();
cryptoApi = retrofit.create(CryptoApi.class);
trackedCryptoCurrencyNames.add("BTC");
trackedCryptoCurrencyNames.add("BTT");
trackedCryptoCurrencyNames.add("CHZ");
getDataWithName(trackedCryptoCurrencyNames);
}
private void getDataWithName(List<String> trackedCryptoCurrencyNames) {
Call<List<CryptoModel>> call = cryptoApi.getDataWithName("OURKEY",trackedCryptoCurrencyNames);
call.enqueue(new Callback<List<CryptoModel>>() {
@Override
public void onResponse(Call<List<CryptoModel>> call, Response<List<CryptoModel>> response) {
if(!response.isSuccessful()){
return;
}
cryptoModelList = response.body();
for(CryptoModel cryptoModel : cryptoModelList){
Log.d(TAG, "\nonResponse:" + cryptoModel.getCurrency() + " price: " + cryptoModel.getPrice());
}
}..}
}