@@ -26,6 +26,7 @@ import okhttp3.ResponseBody
2626import okio.Source
2727import java.io.File
2828import java.lang.reflect.Type
29+ import java.util.*
2930import java.util.concurrent.TimeUnit
3031
3132open class ApiClient (val baseUrl : String , val dockerClientConfig : DockerClientConfig = DockerClientConfig ()) {
@@ -180,26 +181,41 @@ open class ApiClient(val baseUrl: String, val dockerClientConfig: DockerClientCo
180181 }
181182
182183 // TODO: support multiple contentType options here.
183- val mediaType = (headers[ContentType ] as String ).substringBefore(" ;" ).toLowerCase( )
184+ val mediaType = (headers[ContentType ] as String ).substringBefore(" ;" ).lowercase( Locale .getDefault() )
184185
185- val request = when (requestConfig.method) {
186- DELETE -> Request .Builder ().url(url).delete(requestBody(requestConfig.body, mediaType))
187- GET -> Request .Builder ().url(url)
188- HEAD -> Request .Builder ().url(url).head()
189- PATCH -> Request .Builder ().url(url).patch(requestBody(requestConfig.body, mediaType))
190- PUT -> Request .Builder ().url(url).put(requestBody(requestConfig.body, mediaType))
191- POST -> Request .Builder ().url(url).post(requestBody(requestConfig.body, mediaType))
192- OPTIONS -> Request .Builder ().url(url).method(" OPTIONS" , null )
186+ val requestBuilder = when (requestConfig.method) {
187+ DELETE -> Request .Builder ()
188+ .url(url)
189+ .delete(requestBody(requestConfig.body, mediaType))
190+ GET -> Request .Builder ()
191+ .url(url)
192+ HEAD -> Request .Builder ()
193+ .url(url)
194+ .head()
195+ PATCH -> Request .Builder ()
196+ .url(url)
197+ .patch(requestBody(requestConfig.body, mediaType))
198+ PUT -> Request .Builder ()
199+ .url(url)
200+ .put(requestBody(requestConfig.body, mediaType))
201+ POST -> Request .Builder ()
202+ .url(url)
203+ .post(requestBody(requestConfig.body, mediaType))
204+ OPTIONS -> Request .Builder ()
205+ .url(url)
206+ .method(" OPTIONS" , null )
193207 null -> throw IllegalStateException (" Request method is null" )
194208 }.apply {
195209 headers.forEach { header -> addHeader(header.key, header.value) }
196210 }.apply {
197211 tag(EnforceResponseContentTypeConfig ::class .java, EnforceResponseContentTypeConfig (fallbackContentType))
198- }.build()
199- return request
212+ }
213+ // requestBuilder.cacheControl(FORCE_NETWORK)
214+ return requestBuilder.build()
200215 }
201216
202217 protected fun prepareClient (requestConfig : EngineRequest ): OkHttpClient {
218+ // Logger.getLogger(OkHttpClient::class.java.name).level = Level.FINE
203219// val engineResponse = engineClient.request(requestConfig)
204220 val actualClient = buildHttpClient(client.newBuilder())
205221 // .proxy(proxy) // TODO
@@ -212,7 +228,7 @@ open class ApiClient(val baseUrl: String, val dockerClientConfig: DockerClientCo
212228
213229 protected inline fun <reified T : Any ? > request (request : Request , client : OkHttpClient , elementType : Type ? = null): ApiInfrastructureResponse <T ?> {
214230 val response = client.newCall(request).execute()
215- val mediaType = response.header(ContentType )?.substringBefore(" ;" )?.toLowerCase( )
231+ val mediaType = response.header(ContentType )?.substringBefore(" ;" )?.lowercase( Locale .getDefault() )
216232
217233 // TODO: handle specific mapping types. e.g. Map<int, Class<?>>
218234 when {
@@ -247,7 +263,7 @@ open class ApiClient(val baseUrl: String, val dockerClientConfig: DockerClientCo
247263
248264 protected inline fun <reified T : Any ? > requestStream (request : Request , client : OkHttpClient ): ApiInfrastructureResponse <T ?> {
249265 val response = client.newCall(request).execute()
250- val mediaType = response.header(ContentType )?.substringBefore(" ;" )?.toLowerCase( )
266+ val mediaType = response.header(ContentType )?.substringBefore(" ;" )?.lowercase( Locale .getDefault() )
251267
252268 // TODO: handle specific mapping types. e.g. Map<int, Class<?>>
253269 when {
@@ -282,7 +298,7 @@ open class ApiClient(val baseUrl: String, val dockerClientConfig: DockerClientCo
282298
283299 protected inline fun requestFrames (request : Request , client : OkHttpClient , expectMultiplexedResponse : Boolean = false): ApiInfrastructureResponse <Frame > {
284300 val response = client.newCall(request).execute()
285- val mediaType = response.header(ContentType )?.substringBefore(" ;" )?.toLowerCase( )
301+ val mediaType = response.header(ContentType )?.substringBefore(" ;" )?.lowercase( Locale .getDefault() )
286302
287303 // TODO: handle specific mapping types. e.g. Map<int, Class<?>>
288304 when {
0 commit comments