Android uygulamasında OkHttp istemcisiyle birlikte Retrofit 2 (2.0.0-beta3) kullanıyorum ve şu ana kadar her şey yolunda gidiyor. Ancak şu anda OkHttp Interceptor ile sorun yaşıyorum. Iletisim kurduğum sunucu istek gövdesinde erişim belirtecini almaktır, bu yüzden auth jetonu ekleme talebini engellediğimde veya güncellenmiş auth jetonu eklemem gerektiğinde Authenticator yönteminin kimlik doğrulaması yapıldığında, bu amaçla istek gövdesini değiştirmem gerekir. . Fakat sadece başlıklara veri ekleyebiliyorum ama devam eden talebin gövdesinde değil gibi görünüyor.Retrofit2: OkHttp Interceptor'da istek gövdesini değiştirme
client.interceptors().add(new Interceptor() {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
if (UserPreferences.ACCESS_TOKEN != null) {
// need to add this access token in request body as encoded form field instead of header
request = request.newBuilder()
.header("access_token", UserPreferences.ACCESS_TOKEN))
.method(request.method(), request.body())
.build();
}
Response response = chain.proceed(request);
return response;
}
});
kimse benim erişim belirteci (ilk defa veya belirteç yenilemeden sonra güncellenir) eklemek için istek gövdesini nasıl değiştirileceğini olarak doğru yöne işaret edebilir şöyledir: Şimdiye kadar yazdım kodudur? Doğru yöne herhangi bir işaretçi takdir edilecektir.
o() ' –
3k @ Thats gerekli değildir dönmeden önce, Tampon kurucu içinde kapatılabilir bir şey tahsis doesnt bodyToString' de tampon kapatmak için iyi bir fikir olacaktır. https://github.com/square/okio/blob/master/okio/src/main/java/okio/Buffer.java#L59 – Fabian