-(void)uploadUserImageWithUIImage:(UIImage *)image
{
UIImage *imageTanya = [UIImage imageNamed:@"1.jpg"];
AFHTTPRequestOperationManager *m = [[AFHTTPRequestOperationManager alloc] initWithBaseURL:[NSURL URLWithString:@"http://www.xxxxxxxx.com/yyyyyy/filesService.svc/"]];
NSData *imageData = UIImageJPEGRepresentation(imageTanya, 0.5);
AFHTTPRequestOperation *op = [m POST:@"UploadFile" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
//do not put image inside parameters dictionary as I did, but append it!
[formData appendPartWithFileData:imageData name:@"1" fileName:@"1.jpg" mimeType:@"image/jpeg"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success: %@ ***** %@ **** %@", operation.responseString, responseObject, operation.request.URL.absoluteString);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@ ***** %@", operation.responseString, error);
}];
[op start];
}
发送请求POST时,它变为GET,因为AFNetworking在服务器重定向时发送了错误的路径方法已经变为get 错误的路径:“http://www.xxxxxxxx.com/UploadFile HTTP / 1.1” 当我创建一个新项目它工作正常但在我的项目中它给了我这个错误 -Xcode版本5.1 - AFNetworking 2.0
答案 0 :(得分:0)
试试这个:
m POST:[NSString stringWithFormat:@"http://www.mohamedaspnet.com/Nazzelha/filesService.svc/%@", @"UploadFile"] ....
抱歉,我不知道问题是什么,如果您正在寻找POST到网址,但服务器会将其重定向到其他网址,例如,http://domain.com/abc ==&gt ; 301 ==&gt; http://domain.com/def,那么你期望的是POST http://domain.com/def实际上,你应该看看这个帖子AFNetworking: setRedirectResponseBlock inside my class NSURLResponse always return null value
根据相应委托方法的文档, 连接:willSendRequest:redirectResponse ::
委托可以在修改时收到此消息 发送之前的请求,例如转换请求的URL 它的规范形式。要检测此情况,请检查redirectResponse; 如果为零,则由于重定向而未发送消息。
答案 1 :(得分:0)
您的请求由Foundation URL加载系统处理,并非AFNetworking问题。
您应该删除此行,因为您调用的POST:…
方法已经将操作排入队列:
[op start];
检查服务器发送的重定向类型。如果它正在发送HTTP 303,RFC 2616要求将请求类型更改为GET
。它应该是发送HTTP 307.请参阅3xx Redirection并确保您使用正确的状态代码。