我有一个iOS应用程序,其中通过NSURLConnection
发出REST WebService请求。它在所有情况下都可以正常工作,除非服务(用.NET - IIS 7实现)没有数据要返回。当它没有数据时,响应显示状态204正常,并且响应正文为空,但需要非常长时间(超过45-60秒)来触发connection:didReceiveResponse
委派。
我注意到在C#代码中,状态代码在这些情况下显式设置为204,并且返回“null”(我知道这本身是不正确的:204响应应该什么都不返回,甚至不返回null)。 / p>
使用Fiddler调试这个WebService,我发现一个警告,指出响应长度头字段(值为'4',可能来自“null”?)和响应体之间存在不匹配,这当然是空的。
现在,当我停止将状态代码设置为204时,整个问题(NSURLConnection代理花了很长时间才能被触发)得到修复,但奇怪的是,这只发生在我的生产环境中,而不是在临时环境。
对此有合理的解释吗?也许是一些IIS设置?