Comments (5)
Alright then. Things are a bit clearer now, and I sort of know how to investigate it further, I'll close this.
from malibu.
Hey @guilhermearaujo.
I found that "Error Domain=Malibu.NetworkError Code=8" is actually noDataInResponse
by doing print(NetworkError.noDataInResponse as NSError)
.
In the last two released we fixed a couple of issues related to ETags: https://github.com/hyperoslo/Malibu/pull/94 and https://github.com/hyperoslo/Malibu/pull/97. Could it be that you're getting 304 Not Modified for some of your requests? If it so, try to disable Etags functionality if 304 is not supposed to be handled in your app.
from malibu.
Hi @vadymmarkov,
That does seem to be the problem, however it still seems a bit weird:
Prior to #97, the default behaviour for ETag Policy was enabled
. This PR changed it to be disabled
, and my app does not override it.
Therefore, my app requests (using 6.4.0) should never include the ETag header, I suppose, and consequently, the back-end should not respond with 304.
Is this correct or am I missing a point here?
Update:
I was wrong: the collapsed code made me misinterpret the changes.
GET requests were already supposed to have ETags enabled, and I believed that after these changes they now do work as intended.
from malibu.
Another thing that I haven't understood yet:
Some users reported that the content wouldn't load some times. It kind makes sense if the app gets a 304, but has no cache (or is not using the cache as it should) to complete the promises.
But in my tests, performing the exact same requests, using debug and release builds, I could not reproduce a single error like their reports.
Why isn't if failing consistently? Is it possible that the cache is storing the ETags, but has lost (or corrupted?) the data?
from malibu.
It's hard to say why it isn't failing consistently. You can test ETags by doing the same request multiple times and inspecting the status code. You can also try to clear ETags storage Malibu.clearStorages()
to start from the clean state.
from malibu.
Related Issues (20)
- Unable to change response code when mocking with JSON HOT 1
- validate() does not consider 304 a valid response HOT 1
- MockProvider does not call promise's callback HOT 4
- ETag still present even after calling Malibu.clearStorage() HOT 11
- Documentation Error for Pre-processing HOT 1
- Reject promise in middleware HOT 5
- Testing multi-request flows and MockProvider HOT 2
- Make `preProcessRequest` return a promise (or give middleware access to the Request) HOT 1
- New pod release? HOT 1
- Idea/suggestion: improve and extend Codable support HOT 1
- cancelAllRequests not working? HOT 3
- Retry with backoff HOT 2
- Proposal: Adding `RequestBehaviour`s to Malibu HOT 7
- Networking class doesn't work HOT 2
- Can't run playground
- Why there is a dependency on a small barely supported library (When)? HOT 1
- Response serialization
- SSL Pinning HOT 1
- Malibu including 'When' in `Malibu.framework/Frameworks` folder HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from malibu.