0
votes

i want to post image by AFNetworking,here is the code

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer.acceptableContentTypes = [manager.responseSerializer.acceptableContentTypes setByAddingObject:@"text/html"];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
[manager POST:URL parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData){
     [formData appendPartWithFileData:UIImageJPEGRepresentation(selfPhoto, 1) name:@"file" fileName:imageFilePath mimeType:@"image/jpg"];
 }

but return 400 bad request,here is the errro:

Domain=com.alamofire.error.serialization.response Code=-1011 "Request failed: bad request (400)" UserInfo={com.alamofire.serialization.response.error.response= { URL: http://121.42.203.122:8080/8minutes/uploadImg } { status code: 400, headers { Connection = close; "Content-Language" = en; "Content-Length" = 1105; "Content-Type" = "text/html;charset=utf-8"; Date = "Fri, 11 Dec 2015 05:36:46 GMT"; Server = "Apache-Coyote/1.1"; } }

here is webservice url key:

  param:{"file"}

where i was wrong?

2
400 Bad request means, you didn't form the request the way server expects. Check the server logs for whats the issue.. May be it needs the image to be sent as multipart/form - Evol Gate

2 Answers

3
votes

Its because the response you are getting is in "text/html" format it should be in application/json format.

0
votes
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"application/json", @"text/json", @"text/javascript",@"text/html", nil];

try this ...worked for me ...