我有一个使用 ASIHTTPRequest 与 REST 服务器通信的 iOS 应用程序。服务器支持端口 80 (HTTP) 和端口 443 (HTTPS) 上的连接 - 我在端口 443 上使用 GeoTrust/RapidSSL 证书。用户可以配置应用程序以选择他们想要使用的协议。我正在使用 WireShark 监控服务器上的流量,我发现偶尔如果用户在 HTTP 和 HTTPS 之间切换,当他们下一次提交请求时,我可以看到这两种协议的流量,然后是之后的每个请求仅适用于新选择的协议。
此外,当应用程序关闭时,会发送一些数据包,我猜这是某种清理。这些最终数据包的类型(HTTP/HTTPS)取决于应用程序使用的协议。如果应用程序已设置为在同一应用程序会话期间同时使用 HTTP 和 HTTPS,则在应用程序关闭时会同时发送 HTTP 和 HTTPS 数据包。这些场景对我来说似乎不正确,并表明我的 ASIHTTPRequest 没有被完全清除。当我的请求以响应“HTTP/0.9 200 OK”完成但未返回任何数据时,我偶尔会遇到错误,我认为这是由于尝试使用 HTTP 与端口 443 通信引起的。
谁能证实我的怀疑是真的?在 ASIHTTPRequest 之后我应该使用一些命令来清除它,以便可以通过不同的协议发送下一个请求吗?