FlickR API - 基于EditText的查询
FlickR API - Query Based on EditText
我已成功确定如何调用 FlickR API。但是,我很难确定如何根据用户输入的搜索词搜索所有 FlickR 照片。
我认为应该将搜索词输入到 FlickR API 的 "tags" 组件中,但是我不知道如何 link 我的编辑文本变量 (mQuery) FlickR API 标签:
public class MainActivity extends AppCompatActivity {
private EditText mSearchTerm;
private Button mRequestButton;
private String mQuery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSearchTerm = (EditText) findViewById(R.id.ediText_search_term);
mRequestButton = (Button) findViewById(R.id.request_button);
mRequestButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mQuery = mSearchTerm.getText().toString();
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.flickr.com/services/rest/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiInterface apiInterface = retrofit.create(ApiInterface.class);
Call<List<Photo>> call = apiInterface.getPhotos(mQuery);
call.enqueue(new Callback<List<Photo>>() {
@Override
public void onResponse(Call<List<Photo>> call, Response<List<Photo>> response) {
}
@Override
public void onFailure(Call<List<Photo>> call, Throwable t) {
}
});
}
});
}
//Synchronous vs. Asynchronous
public interface ApiInterface {
@GET("?&method=flickr.photos.search&tags=<Ali>&api_key=1c448390199c03a6f2d436c40defd90e&format=json") //
Call<List<Photo>> getPhotos(@Query("q") String photoSearchTerm);
}
}
试试这个,这是对 Flickr
的搜索 API
public static final String BASE_URL = "https://api.flickr.com/";
@GET("services/rest/?method=flickr.photos.search&api_key="+API_KEY+"&format=json&nojsoncallback=1&extras=url_m")
Call<FlickrModel> getImages(@Query("text") String query);
我已成功确定如何调用 FlickR API。但是,我很难确定如何根据用户输入的搜索词搜索所有 FlickR 照片。
我认为应该将搜索词输入到 FlickR API 的 "tags" 组件中,但是我不知道如何 link 我的编辑文本变量 (mQuery) FlickR API 标签:
public class MainActivity extends AppCompatActivity {
private EditText mSearchTerm;
private Button mRequestButton;
private String mQuery;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSearchTerm = (EditText) findViewById(R.id.ediText_search_term);
mRequestButton = (Button) findViewById(R.id.request_button);
mRequestButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mQuery = mSearchTerm.getText().toString();
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder().addInterceptor(interceptor).build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl("https://api.flickr.com/services/rest/")
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
ApiInterface apiInterface = retrofit.create(ApiInterface.class);
Call<List<Photo>> call = apiInterface.getPhotos(mQuery);
call.enqueue(new Callback<List<Photo>>() {
@Override
public void onResponse(Call<List<Photo>> call, Response<List<Photo>> response) {
}
@Override
public void onFailure(Call<List<Photo>> call, Throwable t) {
}
});
}
});
}
//Synchronous vs. Asynchronous
public interface ApiInterface {
@GET("?&method=flickr.photos.search&tags=<Ali>&api_key=1c448390199c03a6f2d436c40defd90e&format=json") //
Call<List<Photo>> getPhotos(@Query("q") String photoSearchTerm);
}
}
试试这个,这是对 Flickr
的搜索 API public static final String BASE_URL = "https://api.flickr.com/";
@GET("services/rest/?method=flickr.photos.search&api_key="+API_KEY+"&format=json&nojsoncallback=1&extras=url_m")
Call<FlickrModel> getImages(@Query("text") String query);