divyanshunegi
06/11/2021, 11:36 AMpublic class HeaderInterceptor implements Interceptor {
@Override
public Response intercept(Chain chain) throws IOException {
Request request = chain.request();
request = request.newBuilder()
.addHeader("headerKey0", "HeaderVal0")
.addHeader("headerKey0", "HeaderVal0--NotReplaced/NorUpdated") //new header added
.build();
//alternative
Headers moreHeaders = request.headers().newBuilder()
.add("headerKey1", "HeaderVal1")
.add("headerKey2", "HeaderVal2")
.set("headerKey2", "HeaderVal2--UpdatedHere") // existing header UPDATED if available, else added.
.add("headerKey3", "HeaderKey3")
.add("headerLine4 : headerLine4Val") //line with `:`, spaces doesn't matter.
.removeAll("headerKey3") //Oops, remove this.
.build();
request = request.newBuilder().headers(moreHeaders).build();
/* ##### List of headers ##### */
// headerKey0: HeaderVal0
// headerKey0: HeaderVal0--NotReplaced/NorUpdated
// headerKey1: HeaderVal1
// headerKey2: HeaderVal2--UpdatedHere
// headerLine4: headerLine4Val
Response response = chain.proceed(request);
return response;
}
}
I have something like this custom Interceptor in my Android retrofit interceptor for headers,
I am converting this logic to ktor and want add an interceptor there, I could not find a proper solution, the way ktor docs suggest is we need to create a custom feature (Plugin) and install it while instantiating the client, any help or direction is appreciatedMayank
06/11/2021, 11:43 AMdefaultRequest
to add headers https://ktor.io/docs/default-request.htmldivyanshunegi
06/12/2021, 6:50 AMMayank
06/12/2021, 9:49 AM