-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathQRZMultipartBuilder.m
63 lines (53 loc) · 2.02 KB
/
QRZMultipartBuilder.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//
// QRZMultipartBuilder.m
// ImageUploader
//
// Created by Ruslan Nikolaev on 22.10.14.
// Copyright (c) 2014 Ruslan Nikolaev. All rights reserved.
//
#import "QRZMultipartBuilder.h"
@implementation QRZMultipartBuilder
-(id) initWithBoundary: (NSString *) boundary
{
if (self = [super init])
{
_boundary = boundary;
}
return self;
}
-(NSData *) buildHTTPBody
{
NSMutableData *body = [[NSMutableData alloc] init];
// Starting boundary
[body appendData:[[NSString stringWithFormat:@"--%@\r\n",_boundary] dataUsingEncoding:NSUTF8StringEncoding]];
// Params
for (int i=0;i<self.attributes.allKeys.count;i++)
{
NSString *key = [self.attributes.allKeys objectAtIndex:i];
id value = self.attributes[key];
if (key && value)
{
if ([value isKindOfClass:[NSString class]])
{
// Text
[body appendData:[[NSString stringWithFormat:@"Content-Disposition: form-data; name=\"%@\"\r\n\r\n",key] dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[[NSString stringWithFormat:@"%@",value] dataUsingEncoding:NSUTF8StringEncoding]];
if (i != self.attributes.allKeys.count - 1)
{
[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n", _boundary] dataUsingEncoding:NSUTF8StringEncoding]];
}
}
else if ([value isKindOfClass:[UIImage class]])
{
// Image
[body appendData:[@"Content-Disposition: form-data; name=\"userfile\"; filename=\"image.png\"\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:[@"Content-Type: image/png\r\n\r\n" dataUsingEncoding:NSUTF8StringEncoding]];
[body appendData:UIImagePNGRepresentation(value)];
}
}
}
// Ending boundary
[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",_boundary] dataUsingEncoding:NSUTF8StringEncoding]];
return body;
}
@end