【问题标题】:ASIHTTPRequest Disabling CacheASIHTTPRequest 禁用缓存
【发布时间】:2011-10-07 10:17:50
【问题描述】:

我有一个应用程序,它使用从 ASIHTTPRequest 和 ASIFormDataRequest 发送的 POST 表单登录到在线站点。

我有一个登录框,一个 .xib,用户可以在其中输入他们的详细信息。然后,当他们单击“确定”时,它会使用用户输入的详细信息连接到站点。它发送表单 OK 等。

但是有一个问题。我首先输入了错误的详细信息,它连接并告诉我响应的 html。我可以从 html 中看出细节不正确。现在我输入了正确的详细信息,ASI* 甚至不用连接。 当我首先输入正确的详细信息时,它会告诉我一个不同的 html,它应该在我输入正确的登录详细信息时显示。 所以问题出在缓存中,因为它不会在第二次请求时再次连接,对吧?

我正在使用 Little Snitch.app,所以我知道它什么时候连接,什么时候不连接。

现在,问题听起来:“如何在 ASIRequests 中禁用缓存?”

非常感谢。

类片段:http://pastebin.com/a83YCpnm

【问题讨论】:

    标签: objective-c cocoa asihttprequest asiformdatarequest


    【解决方案1】:

    ASIHTTPRequest 默认不缓存 POST 响应 - 请参阅 ASIHTTPRequest.m 中的以下代码

    if (![[self requestMethod] isEqualToString:@"GET"]) {
        [self setDownloadCache:nil];
    }
    

    显然还有其他事情发生 - 您确定这是您发出的 POST 请求吗?您如何启用缓存/创建请求,您可以发布一些代码吗?

    【讨论】:

    【解决方案2】:

    好吧,我发现了问题所在。我没有在每个请求上重新分配 ASIFormDataRequest 和 ASIHTTPRequest,这导致其他请求出现问题,因为它正在被重用。

    因此,请求已被标记为完成,因此如果有意义的话,它甚至都不会费心提出另一个请求。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 2011-03-11
      相关资源
      最近更新 更多