我正在使用来自 newsapi.org 的 api key 创建一个新闻应用程序 这是我使用教程创建的界面代码 https://www.learn2crack.com/2016/02/recyclerview-json-parsing.html.I我很困惑在这个界面中的语法和放置 api key 的位置。
公共(public)接口(interface)请求接口(interface){
@GET("android/jsonandroid")
Call<JSONResponse> getJSON();}
这是我的 MainActivity.java 代码
public class MainActivity extends AppCompatActivity {
private RecyclerView recyclerView;
private ArrayList<Article> data;
private DataAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initViews();
}
private void initViews(){
recyclerView = (RecyclerView)findViewById(R.id.card_recycler_view);
recyclerView.setHasFixedSize(true);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
loadJSON();
}
private void loadJSON(){
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("BASE_URL")
.addConverterFactory(GsonConverterFactory.create())
.build();
RequestInterface request = retrofit.create(RequestInterface.class);
Call<JSONResponse> call = request.getJSON();
call.enqueue(new Callback<JSONResponse>() {
@Override
public void onResponse(Call<JSONResponse> call, Response<JSONResponse> response) {
JSONResponse jsonResponse = response.body();
data = new ArrayList<>(Arrays.asList(jsonResponse.getAndroid()));
adapter = new DataAdapter(data);
recyclerView.setAdapter(adapter);
}
@Override
public void onFailure(Call<JSONResponse> call, Throwable t) {
Log.d("Error",t.getMessage());
}
});
}
}
最佳答案
对一个请求使用@Headers
:
@Headers("api-key: " + "PUT_YOUR_API_KEY")
@GET("android/jsonandroid")
Call<JSONResponse> getJSON();
}
并在 OkHttpClient.Builder
中为所有请求使用 addInterceptor
:
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.addInterceptor(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request().newBuilder().addHeader("api-key", "PUT_YOUR_API_KEY").build();
return chain.proceed(request);
}
});
关于android - 在 Android Studio 中使用改造将 API key 放在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49883204/