以下是我用于以JSON格式将信息发布到服务器的代码。
NSData *jsonData = [dict dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *jsonLength = [NSString stringWithFormat:@"%d",[jsonData length]];
//Initiating the request
urlRequest = [[NSMutableURLRequest alloc] init];
[urlRequest setURL:url];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:jsonLength forHTTPHeaderField:@"Content-Length"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
//[urlRequest setValue:@"applcation/x-www-form-urlencoded;" forHTTPHeaderField:@"Content-Type"];
[urlRequest setValue:@"applcation/json" forHTTPHeaderField:@"Content-Type"];
[urlRequest setHTTPBody:jsonData];
以下是数据发布部分。
NSString *urlStg = nil;
NSString *dict = [NSString stringWithFormat:@"{\"keyword\":\"%@\",\"email\":\"%@\",\"password\":\"%@\"}",@"login",@"xx@aaa.com",@"2221"];
//Parsing JSON data
_LZjsonfetcher = [[JSONFetcher alloc] init];
[_LZjsonfetcher setDelegate:self];
[_LZjsonfetcher postDataParsed:dict url:urlStg delegate:nil key:nil];
我已经成功连接到服务器并获得JSON返回。
但是,问题是我对如何使用JSON将图像提交到服务器一无所知。我试图找到一个没有成功的样本。 JSON不支持图片上传吗?我是否需要寻找另一种将图像上传到服务器的方法?感谢您的帮助。
最佳答案
尽管您可以使用此处的建议来做到这一点,但我认为值得研究AFNetworking
框架,该框架使我认为整个联网过程更加轻松。
使用此框架,以下是发送带有图像的JSON的方法:
AFHTTPRequestOperationManager * manager = [[AFHTTPRequestOperationManager alloc] init];
NSData * imageData = UIImageJPEGRepresentation(myImage, 1.0);
NSDictionary * jsonParameters = @{@"key":@"value"};
[manager POST:@"http://myURL.com" parameters:jsonParameters constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:imageData name:@"attachment" fileName:@"myImage.jpg" mimeType:@"image/jpeg"];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Success!");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Failure!");
}];
该框架非常灵活,您可以使用它做更多的事情-我强烈推荐它。
关于ios - 如何将包含图像的JSON对象发布到服务器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21568935/