0

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

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

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

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

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

非常感谢。

课程片段:http: //pastebin.com/a83YCpnm

4

2 回答 2

1

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

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

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

于 2011-10-07T10:47:20.980 回答
0

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

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

谢谢

于 2011-10-07T12:53:38.717 回答