mirror of
https://github.com/ProxymanApp/atlantis.git
synced 2026-04-26 08:26:04 +03:00
[GH-ISSUE #113] Atlantis is conflicting with my URLProtocol #69
Labels
No labels
Done
Done
Windows
bug
bug
bug
enhancement
enhancement
enhancement
good first issue
hacktoberfest
pull-request
wontfix
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/atlantis#69
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @ChrisMash on GitHub (Aug 5, 2022).
Original GitHub issue: https://github.com/ProxymanApp/atlantis/issues/113
Originally assigned to: @NghiaTranUIT on GitHub.
The Atlantis library has been really useful because I couldn't get a working setup with just the Proxyman macOS app due to VPN issues (though have just managed to hopefully finally resolve that by using the allow-list!) and Alantis actually managed to get network logs working!
But there were some quirks regarding how Atlantis intercepts the network traffic and my app's own networking complexities conflicted (both use
URLProtocol). It basically meant that the network logs weren't showing an accurate or stable picture of what was conceptually happening.Largely this was down to my networking code intercepting looking for specific error responses to requests within my
URLProtocoland then replaying the request differently to get a successful response (relating to handling custom authentication challenges).I've put together a simple sample app that illustrates the difference between using Atlantis and not in this sort of scenario:
AtlantisTest.zip
The sample app sends a request that gets a 404 response, catches that in my
URLProtocoland then makes another request that gets a 200 and reports that result to the request that made the 404 request. So the original request doesn't know about the replay, but gets the result that it really wanted (it's a simplified example so might not make a huge amount of sense!)Without Atlantis without atlantis.proxymanlog.zip

Just see the two requests, with IDs ordered the same as their timestamps, which is what I'd hope for as this is the reality
With Atlantis with atlantis.proxymanlog.zip

See four requests, with IDs that don't match the order of the timestamps. This obviously makes it hard to look at exported network logs and make sense of what was really going on.
Not sure if there's a huge amount that can be done about this though! Even if I register my
URLProtocolbefore or after starting Atlantis the result is the same.@NghiaTranUIT commented on GitHub (Sep 5, 2022):
Sorry for the late reply. I totally missed your issue 😿
Going to investigate it 👍