diff --git a/src/main/java/jota/IotaAPICore.java b/src/main/java/jota/IotaAPICore.java index dc5e2d1..1061068 100644 --- a/src/main/java/jota/IotaAPICore.java +++ b/src/main/java/jota/IotaAPICore.java @@ -5,7 +5,9 @@ import jota.dto.response.*; import jota.error.InvalidTrytesException; import jota.model.Transaction; import jota.utils.InputValidator; +import okhttp3.Interceptor; import okhttp3.OkHttpClient; +import okhttp3.Request; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import retrofit2.Call; @@ -84,17 +86,37 @@ public class IotaAPICore { } /** - * + * added in postConstruct the header for IRI 1.4.1 */ private void postConstruct() { final String nodeUrl = protocol + "://" + host + ":" + port; - final OkHttpClient client = new OkHttpClient.Builder() + // Create OkHttpBuilder + final OkHttpClient.Builder okhttpBuilder = new OkHttpClient.Builder() .readTimeout(5000, TimeUnit.SECONDS) - .connectTimeout(5000, TimeUnit.SECONDS) - .build(); + .connectTimeout(5000, TimeUnit.SECONDS); + // add an Interceptor in order to add the requested header + okhttpBuilder.addNetworkInterceptor( + new Interceptor() { + @Override + public okhttp3.Response intercept(Chain chain) throws IOException { + Request request = chain.request(); + Request newRequest; + + newRequest = request.newBuilder() + .addHeader("X-IOTA-API-VERSION", "1.4.1") + .build(); + + return chain.proceed(newRequest); + } + }); + + // create client + final OkHttpClient client = okhttpBuilder.build(); + + // use client to create Retrofit service final Retrofit retrofit = new Retrofit.Builder() .baseUrl(nodeUrl) .addConverterFactory(GsonConverterFactory.create())