采用AFNetWorking 上传base64的图片到服务器,上传的图片解析不了。ASIHttpRequest上传是可以的,请教!
2016-12-29 13:00
429 查看
采用AFNetWorking 上传base64的图片到服务器,上传的图片解析不了。ASIHttpRequest上传是可以的,两种写法如下,求教,能给个思路吗?
IOS AFNetworking upload pictures to the server.The request is successful,But it can not parse base64 image.Then same request using ASIHTTPReuqest framework upload base64 images on the server side can parse is successful.Can you give a suggestion or idea?
AFNworking request Code:
UIImage *img = [avatar imageWithImageSimple:avatar scaledToSize:EZSIZE(320, 320)];
NSData* imageData = UIImageJPEGRepresentation(img, 0.5);
NSString *strBase64 = [imageData base64String];
NSDictionary * object = @{
@"firstname" :@"nameTest",
@"sex" :@"male",
@"user_id" :@"1234556",
@"avatar" :strBase64,
@"phone" :@"15899402939"
};
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
[parameter setObject:@1 forKey:@"app"];
[parameter setObject:@"save_settings" forKey:@"m_action"];
[parameter setObject:[[object JSONRepresentation] forKey:@"m_param"]];
NSURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST"
URLString:@"http://test..."
parameters:parameter
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
} error:nil];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
ASIHttpRequest request code:
UIImage *img = [avatar imageWithImageSimple:avatar scaledToSize:EZSIZE(320, 320)];
NSData* imageData = UIImageJPEGRepresentation(img, 0.5);
NSString *strBase64 = [imageData base64String];
NSDictionary * object = @{
@"firstname" :@"nameTest",
@"sex" :@"male",
@"user_id" :@"1234556",
@"avatar" :strBase64,
@"phone" :@"15899402939"
};
NSString *parameter = @"app=1";
parameter = [[parameter stringByAppendingString:@"&m_action="] stringByAppendingString:@"save_settings"];
parameter = [[parameter stringByAppendingString:@"&m_param="] stringByAppendingString:[object JSONRepresentation]];
NSData *data = [parameter dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[request setDidFailSelector:@selector(handleRequestEventError:)];
[request setDidFinishSelector:@selector(parseAndSave:)];
[request addRequestHeader:@"Content-Length" value:[@([data length]) stringValue]];
[request setRequestMethod:@"POST"];
[request appendPostData:data];
[request addRequestHeader:@"Content-Type" value:@"application/x-www-form-urlencoded"];
[request setDelegate:self];
[_networkQueue addOperation:request];
IOS AFNetworking upload pictures to the server.The request is successful,But it can not parse base64 image.Then same request using ASIHTTPReuqest framework upload base64 images on the server side can parse is successful.Can you give a suggestion or idea?
AFNworking request Code:
UIImage *img = [avatar imageWithImageSimple:avatar scaledToSize:EZSIZE(320, 320)];
NSData* imageData = UIImageJPEGRepresentation(img, 0.5);
NSString *strBase64 = [imageData base64String];
NSDictionary * object = @{
@"firstname" :@"nameTest",
@"sex" :@"male",
@"user_id" :@"1234556",
@"avatar" :strBase64,
@"phone" :@"15899402939"
};
NSMutableDictionary *parameter = [[NSMutableDictionary alloc] init];
[parameter setObject:@1 forKey:@"app"];
[parameter setObject:@"save_settings" forKey:@"m_action"];
[parameter setObject:[[object JSONRepresentation] forKey:@"m_param"]];
NSURLRequest *request = [[AFHTTPRequestSerializer serializer] multipartFormRequestWithMethod:@"POST"
URLString:@"http://test..."
parameters:parameter
constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
} error:nil];
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
}];
ASIHttpRequest request code:
UIImage *img = [avatar imageWithImageSimple:avatar scaledToSize:EZSIZE(320, 320)];
NSData* imageData = UIImageJPEGRepresentation(img, 0.5);
NSString *strBase64 = [imageData base64String];
NSDictionary * object = @{
@"firstname" :@"nameTest",
@"sex" :@"male",
@"user_id" :@"1234556",
@"avatar" :strBase64,
@"phone" :@"15899402939"
};
NSString *parameter = @"app=1";
parameter = [[parameter stringByAppendingString:@"&m_action="] stringByAppendingString:@"save_settings"];
parameter = [[parameter stringByAppendingString:@"&m_param="] stringByAppendingString:[object JSONRepresentation]];
NSData *data = [parameter dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[request setDidFailSelector:@selector(handleRequestEventError:)];
[request setDidFinishSelector:@selector(parseAndSave:)];
[request addRequestHeader:@"Content-Length" value:[@([data length]) stringValue]];
[request setRequestMethod:@"POST"];
[request appendPostData:data];
[request addRequestHeader:@"Content-Type" value:@"application/x-www-form-urlencoded"];
[request setDelegate:self];
[_networkQueue addOperation:request];
相关文章推荐
- iOS图片上传服务器(ASIHTTPRequest,SpringMVC)
- iOS 多张图片上传demo(用ASIHTTPRequest 框架实现)
- iOS ASIHTTPRequest上传图片的一个问题
- 用ASIHttpRequest通过post请求给java服务器上传的代码(不会出现乱码)
- Asihttprequest上传文件到 appache服务器,脚本语言php(服务器端),客户端iphone oc
- IOS 使用ASIHttpRequest 或 MKNetworkKit 上传图片到ASP.NET
- 如何使用ASIHTTPRequest从iOS端向服务器上传文件?
- 【转】asp.net(c#)使用HttpWebRequest附加携带请求参数以post方式模拟上传大文件(以图片为例)到Web服务器端
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)
- iOS上传文件到服务器(ASIHttpRequest)
- ASIHttpRequest的子类ASIFormDataRequest 上传音频文件到服务器
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)
- IOS 使用ASIHttpRequest 或 MKNetworkKit 上传图片到ASP.NET
- android上传图片到服务器(使用base64字节流的形式通过 AsyncHttpClient框架传输)
- iOS 多张图片上传demo(用ASIHTTPRequest 框架实现)
- IOS 使用ASIHttpRequest 或 MKNetworkKit 上传图片到ASP.NET
- Get、Post(HTTP中最常用的请求方式 使用ASIHTTPRequest)----例如:登录、上传图片(调用手机相册 UIImage 转为data)
- iOS 用ASIHTTPRequest框架 上传多张图片
- IOS 利用ASIHttpRequest 上传多张图片
- 使用ASIHTTPRequest同时向服务器发送多张图片