使用字符串列表改造查询

时间:2021-03-27 13:16:18

标签: java android json retrofit retrofit2

我正在尝试使用字符串列表进行查询,但它只为列表的第一个索引获取数据。

(还有其他币种可以查询,只是给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());
            }
          
        }..}

}

0 个答案:

没有答案