2011-05-14 151 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