0

ASIHTTPRequest と ASIFormDataRequest から送信される POST フォームを使用してオンライン サイトにログインするアプリケーションがあります。

ログインボックス、ユーザーが詳細を入力する .xib があります。次に、[OK] をクリックすると、ユーザーが入力した詳細を使用してサイトに接続します。フォームOKなどを送信します。

しかし問題がある。最初に間違った詳細を入力すると、接続され、応答の html が表示されます。詳細が間違っていることはhtmlからわかります。今、私は正しい詳細を入力し、ASI* は接続さえ気にしません。最初に正しい詳細を入力すると、正しいログイン詳細を入力するたびに表示されるはずの別の html が表示されます。問題はキャッシュにあります。2 番目の要求で再度接続する必要がないからです。

私は 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 に答える