iphone - ASIFormDataRequest 空 POST 请求

标签 iphone ios nginx asihttprequest

我正在使用 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];

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

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

有没有人遇到过这个问题?

最佳答案

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

[request setShouldAttemptPersistentConnection:NO];

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

Stop using persisted connections on POST/PUT

关于iphone - ASIFormDataRequest 空 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5999817/

相关文章:

iphone - cocos2d 和菜单有问题吗?

ios - viewController 和 pushViewcontroller 不工作?

ios - iOS 11 中哪些 API 支持 FLAC?

ssl - 如何配置 Let's encrypt 证书用于 docker 镜像中的 nginx?

mysql - Docker 容器异步运行

iphone - UITableView 未刷新

ios - 在调度 block 中分配的变量返回 null

iphone - self 保留在这个 Objective-C block 中吗?

ios - 使用 RCT_EXPORT_METHOD 语法时如何修复 Xcode 上的 'Semicolon before method body is ignored' 错误?

linux - Fail2Ban 在 10 分钟后解禁。 bantime 没有警告?