我發佈一些數據到一個http認證的網址與ASIFormDataRequest。ASIFormDataRequest-POST文件繼續似乎認證失敗後繼續
當身份驗證失敗並且調用身份驗證對話委託時,上傳過程似乎仍然完全進行。
因此,在這種情況下:
1)用戶的憑據尚未存儲在鑰匙串 2)存儲在鑰匙串用戶的憑證驗證失敗(過期等)
我見此行爲:
- 我看到的請求來我 服務器,並拒絕錯誤 401返回給客戶端
- uploadFailed委託不是調用 。
- 進度條代表緩慢填充爲 該文件似乎仍然被推送到網絡連接上的 。它與 一致的時間 完成的時間量,以充分上傳
- 內置的身份驗證對話框 模式出現
- 用戶輸入正確的憑據
- 進度條代表復位
- 上傳重新開始 - 進度條 由於在 服務器上收到帖子數據而填充服務器
- 完成的委託方法被稱爲 預計。
- 一切都已經上傳就好 與第二次嘗試
這裏就是我安裝我的操作:
[self setRequest:[ASIFormDataRequest requestWithURL:uploadURL]];
[request setDelegate:self];
[request setDidFailSelector:@selector(uploadFailed:)];
[request setDidFinishSelector:@selector(uploadFinished:)];
[request setUseKeychainPersistence:TRUE];
[request setShouldPresentAuthenticationDialog:TRUE];
[request setShouldPresentCredentialsBeforeChallenge:TRUE];
[request setPostValue:captionTextField.text forKey:@"caption"];
[request setPostValue:[siteID stringValue] forKey:@"site_id"];
[request setFile:fileToUpload forKey:@"site_photo"];
[request setUploadProgressDelegate:progressView];
[request startAsynchronous];
我想我需要發出[申請取消]基於認證失敗,但我不確定我應該在哪裏做這件事。
即使在服務器返回了401之後,POST是否仍然會突然消失,這是否是預期的行爲?
欣賞任何指導或解決此問題的指針。
謝謝 - 我已經開始在POST之前進行初始GET。在其他情況下,我使用了基於cookie的認證機制,但由於各種原因,在這種特殊情況下需要使用HTTP基本功能。 – Nick 2010-08-17 02:04:58