ASIFormDataRequest空POST请求

rom*_*ego 2 iphone nginx asihttprequest ios

我正在使用ASIFormDataRequest将多部分POST数据发送到运行nginx + php-fpm的服务器.

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];
Run Code Online (Sandbox Code Playgroud)

但是,偶尔(非常随机,难以重现)空请求到达服务器,我对所有测试使用相同的文件.ASIHTTPRequest执行requestFinished,就像一切都好.

没有生成服务器端错误,我检查了日志.

以前有人有这个问题吗?

小智 7

我今天的问题太早了.它与如何重用连接的nginx行为有关.一个简单的解决方法是将以下内容添加到您的请求过程中:

[request setShouldAttemptPersistentConnection:NO];
Run Code Online (Sandbox Code Playgroud)

默认情况下,此选项在ASIHTTPRequest的最新版本中也设置为NO.在Github上阅读更多相关信息:

停止在POST/PUT上使用持久连接