AFNetworking 2.0:多部分 POST 时出现错误 503
Posted
技术标签:
【中文标题】AFNetworking 2.0:多部分 POST 时出现错误 503【英文标题】:AFNetworking 2.0 : error 503 when multipart POST 【发布时间】:2014-02-13 15:47:05 【问题描述】:我正在使用 AFNetworking 2.1.0 在我的 iPad 应用程序和服务器之间进行通信。
我继承了 AFHTTPSessionManager 并毫无问题地使用以下内容:
[self POST:kAPIPath
parameters:params
success:^(NSURLSessionDataTask *task, id responseObject)
successBlock(responseObject[@"result"]);
failure:^(NSURLSessionDataTask *task, NSError *error)
failureBlock(error);
];
但是当我添加多部分时,我的服务器返回
请求失败。错误:请求失败:服务不负责任(503)
所以这不起作用:
[self POST:kAPIPath
parameters:params
constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
[formData appendPartWithFileData:uploadFile
name:@"file"
fileName:@"photo.jpg"
mimeType:@"image/jpeg"];
success:^(NSURLSessionDataTask *task, id responseObject)
successBlock(responseObject[@"result"]);
failure:^(NSURLSessionDataTask *task, NSError *error)
failureBlock(error);
];
但是当我这样做时它也会返回错误 503(没有修改 formData):
[self POST:kAPIPath
parameters:params
constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
success:^(NSURLSessionDataTask *task, id responseObject)
successBlock(responseObject[@"result"]);
failure:^(NSURLSessionDataTask *task, NSError *error)
failureBlock(error);
];
或者这个(块为零):
[self POST:kAPIPath
parameters:params
constructingBodyWithBlock:nil
success:^(NSURLSessionDataTask *task, id responseObject)
successBlock(responseObject[@"result"]);
failure:^(NSURLSessionDataTask *task, NSError *error)
failureBlock(error);
];
我读了很多帖子,但不明白这是从哪里来的。错误 503 的意思是
503 服务不可用 服务器当前不可用(因为它超载或停机维护)。 [2]通常,这是一种临时状态。有时,这在测试服务器上也可能是永久性的。
但是如果我使用没有多部分的 POST,我没有问题。有谁知道这可能来自哪里?
非常感谢!!!
【问题讨论】:
500个家庭错误显示服务器端存在问题 【参考方案1】:你说的没错,multiform的使用方法如下。我建议你检查你的服务器。尝试使用Postman 直接在浏览器中调试您的多窗体。
[self POST:kAPIPath
parameters:params
constructingBodyWithBlock:^(id<AFMultipartFormData> formData)
[formData appendPartWithFileData:uploadFile
name:@"file"
fileName:@"photo.jpg"
mimeType:@"image/jpeg"];
success:^(NSURLSessionDataTask *task, id responseObject)
successBlock(responseObject[@"result"]);
failure:^(NSURLSessionDataTask *task, NSError *error)
failureBlock(error);
];
【讨论】:
【参考方案2】:我解决了我的问题。
我认为这与there 所述和评论的问题相同。这似乎是 AFNetworking 2.0 中的一个(最近)已知问题,具有多部分形式:issue 1398。我使用了底部 Matt 提出的解决方法,它正在工作。
感谢您的回答。
【讨论】:
以上是关于AFNetworking 2.0:多部分 POST 时出现错误 503的主要内容,如果未能解决你的问题,请参考以下文章
AFNetworking 2.0 多部分/表单数据上传到 mySQL
为啥 AFNetworking POST 多部分请求必须在主队列上同步运行?
使用 AFNetworking 2.0 发送 POST 数据
AFNetworking 2.0 POST 请求无法快速工作