ProxymanApp / Proxyman

Modern. Native. Delightful Web Debugging Proxy for macOS, iOS, and Android ⚡️
https://proxyman.io
5.35k stars 177 forks source link

When using Atlantis, the request body occasionally appears empty in Proxyman #2002

Open KSkyeEx opened 2 months ago

KSkyeEx commented 2 months ago

Description

When using Atlantis, the request body occasionally appears empty in Proxyman I see that the data in originalRequest and currentRequest are different I used ** instead of * for the privacy related part

Steps to Reproduce

(lldb) po sessionTask.originalRequest ▿ Optional ▿ some : ****/MaintenanceOrderDraft ▿ url : Optional ▿ some : ****/MaintenanceOrderDraft

(lldb) po sessionTask.currentRequest ▿ Optional ▿ some : **/MaintenanceOrderDraft ▿ url : Optional ▿ some : **/MaintenanceOrderDraft

Expected Behavior

Environment

NghiaTranUIT commented 2 months ago

@KSkyeEx can you share with me what method from URLSession that you're using? For example: dataTask(with:).

If the body is missing, it indicates that this a new APIs that Atlantis has not covered yet.

NghiaTranUIT commented 2 months ago

Might be releated to https://github.com/ProxymanApp/Proxyman/issues/1978 if you're using Stream Requests from URLSession.

KSkyeEx commented 2 months ago

image image image 我发现当currentrequest 里的 httpbody 丢失的时候,他的数据体其实是在 httpstream ,我不知道这是不是和重定向有关系,我暂时使用originrequest 来代替 currentrequest 来工作

NghiaTranUIT commented 2 months ago

@KSkyeEx It's a known-issues of Atlantis, It can't capture Request Body if it's from httpStream. Similar as the above ticket.

I'm working on it.

To workaround, you can use the common func that Atlantis supports, such as: https://developer.apple.com/documentation/foundation/urlsession/1410592-datatask

You can set the httpBody in the URLRequest