/ / Як додати динамічні заголовки в ретрофіт 2.0 - андроїд, ретрофіт2

Як додати динамічні заголовки в модернізацію 2.0 - android, retrofit2

Я намагаюся додати динамічний заголовок мережевого запиту. Але він отримав помилку, як NullPointer. Я спробував цей шлях.

public interface ApiInterface {

@Multipart
@POST("/api/v1/me")
Call<LoginResponse> completeProfile(@Header("Accept") String accept, @Header("Authorization") String token,
@Part("username") RequestBody username, @Part("full_name") RequestBody full_name, @Part("email") RequestBody email);
}

Після того, як я називаю це таким чином, я не отримав ніяких значень у відповідь. Іноді я отримав помилку. Я додаю мій успішний запит до листоноші як малюнок. Може допомогти мені, де я щось відсутній.

try {

ApplicationData.hideKeyboard(activity);
showProgressDialog();
RequestBody _name = RequestBody.create(MediaType.parse("text/plain"), name);
RequestBody _user_name = RequestBody.create(MediaType.parse("text/plain"), user_name);
RequestBody _email = RequestBody.create(MediaType.parse("text/plain"), email);
RequestBody _home_town = RequestBody.create(MediaType.parse("text/plain"), home_town);
RequestBody _date_of_birth = RequestBody.create(MediaType.parse("text/plain"), date_of_birth);

ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class);
Call<LoginResponse> call = apiService.completeProfile(ApplicationData.ACCEPT, ApplicationData.AUTHORIZE +
"" + ApplicationData.token, _user_name, _name, _email, _home_town, _date_of_birth);
call.enqueue(new Callback<LoginResponse>() {
@Override
public void onResponse(Call<LoginResponse> call, Response<LoginResponse> response) {

hideProgressDialog();
LoginResponse loginResponse = response.body();

// got crash here null pointer
//                    LogMe.e("response",":"+loginResponse.getMessage());
goToHomeActivity();


}

@Override
public void onFailure(Call<LoginResponse> call, Throwable t) {

LogMe.e(TAG, t.getMessage());
hideProgressDialog();
//
}
});

} catch (Exception e) {

e.getMessage();
e.printStackTrace();

}

Листоноша: добре відповідає разом з цими даними у малюнкувведіть опис зображення тут Оновлення: Частина тіла листоноші введіть опис зображення тут

Відповіді:

0 для відповіді № 1

Ця публікація в блозі показує, як можна додати динамічну кількість заголовків запитів до запитів на оновлення.

Це нова функція Retrofit 2.1, тому переконайтеся, що ви оновили свою програму, перш ніж спробувати її.

Заголовки динамічних запитів з @HeaderMap


0 для відповіді № 2

спробуйте це.

Call<LoginResponse> completeProfile(@Header("Accept") String accept, @Header("Authorization") String token,
@Part("username") RequestBody username, @Part("full_name") RequestBody full_name, @Part("email") RequestBody email);
}

Call<LoginResponse> call = apiService.completeProfile(ApplicationData.ACCEPT, ApplicationData.token, _user_name, _name, _email, _home_town, _date_of_birth);