2011-05-14 106 views
2

我使用ASIFormDataRequest將多部分POST數據發送到運行nginx + php-fpm的服務器。ASIFormDataRequest空POST請求

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request setPostValue:sessionKey forKey:@"session"]; 
[request setPostValue:secret forKey:@"secret"]; 
[request setPostValue:@"test" forKey:@"description"]; 
[request setFile:filePath forKey:@"image"]; 
[request setTimeOutSeconds:120]; 
[request setDelegate:self]; 
[request startAsynchronous]; 

然而,一旦在一段時間(時非常隨意,難以重現)的空請求到達服務器,我使用所有的測試相同的文件。 ASIHTTPRequest執行requestFinished,就像一切正常。

沒有生成服務器端錯誤,我檢查了日誌。

有沒有人有過這個問題?

+0

更新您的ASIHTTPRequest的最新消息?嘗試手動加載文件,然後將NSData發送到服務器? – 2011-05-14 05:21:00

回答

7

今天我有這個問題太早了。它與nginx行爲有關如何重用連接。一個簡單的解決方法是隻需將以下內容添加到您的申請程序:

[request setShouldAttemptPersistentConnection:NO]; 

此選項也默認在ASIHTTPRequest的最新構建被設置爲NO。瞭解更多關於它在Github上:

Stop using persisted connections on POST/PUT

+0

它的工作原理!非常感謝! – romaonthego 2011-05-14 19:00:54

+0

謝謝!這讓我困擾了一段時間。 – Cyprian 2011-09-07 10:19:13