有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

基于EditText的java FlickR API查询

我已经成功地确定了如何调用FlickR API。然而,我很难根据用户输入的搜索词确定如何搜索所有FlickR照片

我认为搜索词应该输入到FlickR API的“标记”组件中,但是我不知道如何将我的编辑文本变量(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);
    }

 }

共 (1) 个答案

  1. # 1 楼答案

    试试看,这是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);