klippa-app / nativescript-http

The best way to do HTTP requests in NativeScript, a drop-in replacement for the core HTTP with important improvements and additions like proper connection pooling, form data support and certificate pinning
MIT License
36 stars 15 forks source link

[Review Request] Roadmap Step - Cache Control #54

Open pradumnk-mahanta opened 3 years ago

pradumnk-mahanta commented 3 years ago

Hi @jerbob92 ,

I tried implementing cache control in the plugin and it works partially. For iOS I was able to directly set Cache Policy as urlRequest.cachePolicy = NSURLRequestCachePolicy.UseProtocolCachePolicy; or whatever.

But for Android I noticed that you are making the request with the AAR created by you and not directly with okhttp3.

I thought of rewriting the request function for android of the plugin with OkHttp. However before I start that, I thought of getting in touch with you for a possibility to add cache control parameter to com.klippa.NativeScriptHTTP.Async.Http.MakeRequest(requestOptions, callbackComplete, requestId)

Currently there are 3 parameters in MakeRequest

RequestOptions
CallbackComplete
Request Id Counter

We can add in a fourth Parameter CacheControlPolicy which will be added to the okhttp request.

You must be building a request of okHttp inside the MakeRequest function similar to var request = new okhttp3.Request.Builder(); we can just add the cache control builder to that request to make it work request.cacheControl(cacheControlPolicy);

I have committed my changes to the forked repository here.

Please have a look at the request function in http.ios.ts and http.android.ts and let me know.

jerbob92 commented 3 years ago

Hi, cool! Can you please create a pull request? Makes it easier to provide feedback.

pradumnk-mahanta commented 3 years ago

Hi, cool! Can you please create a pull request? Makes it easier to provide feedback.

Hi @jerbob92,

I have created a PR as per your request. Please review and let me know.