iOS ASIHTTPSRequest在HTTP / HTTPS连接之间切换

时间:2012-05-04 13:58:38

标签: objective-c ios rest https asihttprequest

我有一个iOS应用程序,它使用ASIHTTPRequest与REST服务器通信。服务器支持端口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之后使用它来清除它以便下一个请求可以在不同的协议上发送?

1 个答案:

答案 0 :(得分:0)

你看到的是听起来像HTTP持久连接的意图;见http://en.wikipedia.org/wiki/HTTP_persistent_connection等等。

你无需做任何事情,这一切都没有造成任何伤害。您在切换协议时看到的几个http数据包只是旧的套接字关闭了我相信 - 我认为您只是看到数据包到TCP端口80,并且没有看到任何包含数据/实际http请求的数据包。