Tüm isteklerde kullanılacak benzersiz bir Başlık tanımlamak için bir çözüm arıyorum. Bugün parametresi gibi geçtin Her isteğe @Header
kullanmak ama bu kullanmak @GET
ve @POST
Yükseltmeyi kullanarak tüm isteklere bir Başlık nasıl tanımlanır?
Bugün benim isteklerinde bu Başlığını sabitleme örneğin, bir parametre gibi geçmesi gerek olmadan tüm isteklere çalışan tek başlığını tanımlamak istiyorum. Her bir isteğin @GET
İhtiyacımın Header'ı parametre olarak tanımladığına dikkat edin.
//interface
@GET("/json.php")
void getUsuarioLogin(
@Header("Authorization") String token,
@QueryMap Map<String, String> params,
Callback<JsonElement> response
);
//interface
@GET("/json.php")
void addUsuario(
@Header("Authorization") String token,
@QueryMap Map<String, String> params,
Callback<JsonElement> response
);
//using
public void getUsuarioLogin(){
Map<String, String> params = new HashMap<String, String>();
params.put("email", "[email protected]");
params.put("senha", ConvertStringToMD5.getMD5("mypassword"));
RestAdapter adapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(WebServiceURL.getBaseWebServiceURL())
.build();
UsuarioListener listener = adapter.create(UsuarioListener.class);
listener.getUsuarioLogin(
//header
"Basic " + BasicAuthenticationRest.getBasicAuthentication(),
params,
new Callback<JsonElement>() {
@Override
public void success(JsonElement arg0, Response arg1) {
Log.i("Usuario:", arg0.toString() + "");
}
@Override
public void failure(RetrofitError arg0) {
Log.e("ERROR:", arg0.getLocalizedMessage());
}
});
}
//using
public void addUsuario(){
Map<String, String> params = new HashMap<String, String>();
params.put("name", "Fernando");
params.put("lastName", "Paiva");
RestAdapter adapter = new RestAdapter.Builder()
.setLogLevel(RestAdapter.LogLevel.FULL)
.setEndpoint(WebServiceURL.getBaseWebServiceURL())
.build();
UsuarioListener listener = adapter.create(UsuarioListener.class);
listener.addUsuario(
//header
"Basic " + BasicAuthenticationRest.getBasicAuthentication(),
params,
new Callback<JsonElement>() {
@Override
public void success(JsonElement arg0, Response arg1) {
Log.i("Usuario:", arg0.toString() + "");
}
@Override
public void failure(RetrofitError arg0) {
Log.e("ERROR:", arg0.getLocalizedMessage());
}
});
}
mükemmeldir: Belirli bir API sarma ve her nokta için bir başlık gerektiği hallerde, size adaptörü oluştururken
Örneğin, bunu yapmak isteyebilirsiniz. RequestInterceptor'ı uygulayan bir 'CustomRequestInterceptor' sınıfı oluşturdum ve şimdi kullanıyorum: 'setRequestInterceptor (yeni CustomRequestInterceptor())' ve çalışır. Çok teşekkürler ! – FernandoPaiva