Retrofit을 사용하고 있으며 사용자가 입력 한 검색어를 기반으로 FlickR을 쿼리하고 싶습니다. Retrofit/REST의 경험이 제한되어 있으므로 올바르게 설정했는지 확인하고 싶습니다. 모든 자습서, 조언 및 내 코드에 대한 의견을 보내 주시면 감사하겠습니다.업데이트 할 수 없습니다.
정확하게 입력해야 할 항목을 알지 못하는 "불확실한"항목 중 일부에 레이블을 붙였습니다. REST에서 "q"는 항상 쿼리를 나타내는 데 사용됩니까? 하루의 끝에서
, 나는 이미지 검색 결과가 사용자에게의 GridView에 표시하고 선택할 수 싶지 : 거의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=<mQuery>&api_key=1c448390199c03a6f2d436c40defd90e&format=json") //
Call<List<Photo>> getPhotos(@Query("q") String photoSearchTerm);
}
}
감사 :
여기에 2를 갱신하는 것이 마이그레이션에 대한 몇 가지 정보입니다. 나는 그것으로 실험 할 것이지만, 당신이 내 쿼리의 사진 검색 부분을 제거했다는 것을 알았습니다. 나는이 문서에서 벗어나고있다. https://www.flickr.com/services/api/flickr.photos.search.html – tccpg288
http/REST에 대해 더 자세히 배우기를 권장한다. "?"뒤에 오는 모든 것 검색어 매개 변수입니다. nasch는 flickr.photos.search 메소드를 메소드 매개 변수로 변환했습니다. 따라서 getPhotos ("flickt.photos.search")를 호출하여 동일한 메소드 값을 가져야합니다. 다른 하나는 검색의 다음 필드입니다. postman (브라우저 플러그인)이나 컬처럼 http 클라이언트를 사용하여 진행 상황을 이해할 수 있는지 테스트 해 보는 것이 좋습니다. – Lxu
http/REST 튜토리얼에 대한 권장 사항이 있습니까? 나는 그것에 대해 조금 읽었지만 포괄적 인 튜토리얼은 유익 할 것이다. – tccpg288