0

我正在将 Covid Tracker Rapid API 用于食谱应用项目。尝试向 Rapid API 发出 GET 请求时会出现此问题。错误显示预期的开始数组,但在第 1 行第 2 列路径 $ 开始对象

这是我的改装API

public interface Api {

    String BASE_URL = "https://who-covid-19-data.p.rapidapi.com/api/data/";


    @GET("names")
    Call < List < Model > > modelData( @Header("X-RapidAPI-Host") String api,
                                       @Header("X-RapidAPI-Key") String apiKey );
}

这是我的模型课

public class Model {

    String names;

    public Model ( String names ) {
        this.names = names;
    }

    public String getNames () {
        return names;
    }

    public void setNames ( String names ) {
        this.names = names;
    }
}

这是我的主要活动课

public class MainActivity extends AppCompatActivity {
    TextView textView;

    @Override
    protected void onCreate ( Bundle savedInstanceState ) {
        super.onCreate ( savedInstanceState );
        setContentView ( R.layout.activity_main );
        textView=findViewById ( R.id.txtHell );
        
        loadData();
    }

    private void loadData () {

        Retrofit retrofit = new Retrofit.Builder()
                .baseUrl(Api.BASE_URL)
                .addConverterFactory( GsonConverterFactory.create())
                .addConverterFactory ( ScalarsConverterFactory.create () )
                .build();

        Api api = retrofit.create(Api.class);

        Call < List < Model > > call=api.modelData ("","");
        call.enqueue ( new Callback < List < Model > > ( ) {
            @Override
            public void onResponse ( Call < List < Model > > call , Response < List < Model > > response ) {

                if(!response.isSuccessful ()){
                    textView.setText ( "Code"+response.code () );
                }else{
                    List<Model> models=response.body ();
                    for(Model model:models){
                        String data="";
                        data +="Names :"+ model.getNames ();

                        textView.append (data  );
                    }
                }
            }

            @Override
            public void onFailure ( Call < List < Model > > call , Throwable t ) {
                textView.setText ( t.getMessage () );
            }
        } );
    }
}

请帮我

4

1 回答 1

0

API 和 RapidAPI 一切都很好。我相信您只需要像这样更改界面即可。

@GET("names")
Call <ListModel> modelData( @Header("X-RapidAPI-Host") String api,
                            @Header("X-RapidAPI-Key") String apiKey );
于 2021-09-21T07:15:59.263 回答