Ah. when I run this code then I got a 401 Response from the server
On 8월20일, 오전10시05분, jusung Kye <kyejus...@gmail.com> wrote: > I wanna make function that update profile image with XAuth on iPhone. > but I'm not good at HTTP POST METHOD. > so... anybody.. could you confirm for me whether this Form is right? > The code is like below(I refered this site. and add sendDataReQuest > functionhttp://github.com/aral/XAuthTwitterEngine) > > - (NSString *)_sendDataRequestWithMethod:(NSString *)method > path:(NSString *)path > queryParameters:(NSDictionary *)params > fileData:(NSData *)fileData > body:(NSString *)body > requestType: > (MGTwitterRequestType)requestType > responseType: > (MGTwitterResponseType)responseType > { > NSString *fullPath = path; > > NSString *urlString = [NSString stringWithFormat:@"%@://%@/%@", > (_secureConnection) ? @"https" : @"http", > _APIDomain, fullPath]; > > NSLog(@"%@",fullPath); > > NSURL *finalURL = [NSURL URLWithString:urlString]; > if (!finalURL) { > return nil; > } > > if (![self isAuthorized]) > { > return nil; > } > > NSLog(@"About to carry out request with access token: %@", > _accessToken); > OAMutableURLRequest *theRequest = [[[OAMutableURLRequest alloc] > initWithURL:finalURL > > > consumer:self.consumer > > > token:_accessToken > > realm: nil > > signatureProvider:nil] > autorelease]; > if (method) { > [theRequest setHTTPMethod:method]; > } > [theRequest setHTTPShouldHandleCookies:NO]; > > // Set headers for client information, for tracking purposes at > Twitter. > [theRequest setValue:_clientName forHTTPHeaderField:@"X-Twitter- > Client"]; > [theRequest setValue:_clientVersion forHTTPHeaderField:@"X-Twitter- > Client-Version"]; > [theRequest setValue:_clientURL forHTTPHeaderField:@"X-Twitter- > Client-URL"]; > > /* > NSMutableURLRequest *theRequest = [self > _baseRequestWithMethod:method > > path:path > > requestType:requestType > > queryParameters:params]; > */ > > BOOL isPOST = (method && [method isEqualToString:@"POST"]); > if (isPOST) { > NSLog(@"This is XEngin Posting Method!"); > NSString *boundary = @"0xKhTmLbOuNdArY"; > NSString *filename = @"image.png"; > > NSString *bodyPrefixString = [NSString stringWithFormat:@"-- > %...@\r\n", boundary]; > NSString *bodySuffixString = [NSString stringWithFormat:@"\r > \n...@--\r\n", boundary]; > NSString *contentDisposition = [NSString > stringWithFormat:@"Content-Disposition: form-data; name=\"image\"; > filename=\"%...@\"\r\n", filename]; > NSString *contentImageType = [NSString > stringWithFormat:@"Content-Type: image/%...@\r\n", [filename > pathExtension]]; > NSString *contentTransfer = @"Content-Transfer-Encoding: > binary\r\n\r\n"; > > NSMutableData *postBody = [NSMutableData data]; > > [postBody appendData:[bodyPrefixString > dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO]]; > [postBody appendData:[contentDisposition > dataUsingEncoding:NSUTF8StringEncoding ]]; > [postBody appendData:[contentImageType > dataUsingEncoding:NSUTF8StringEncoding ]]; > [postBody appendData:[contentTransfer > dataUsingEncoding:NSUTF8StringEncoding]]; > [postBody appendData:fileData]; > [postBody appendData:[bodySuffixString > dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO]]; > [theRequest setHTTPBody:postBody]; > NSString *contentType = [NSString stringWithFormat:@"multipart/ > form-data; boundary=%@", boundary, nil]; > [theRequest setValue:contentType forHTTPHeaderField:@"Content- > Type"]; > > } > MGTwitterHTTPURLConnection *connection; > > connection = [[MGTwitterHTTPURLConnection alloc] > initWithRequest:theRequest > > delegate:self > > requestType:requestType > > responseType:responseType]; > if (!connection) { > return nil; > } else { > [_connections setObject:connection forKey:[connection > identifier]]; > [connection release]; > } > NSLog(@"\nsending request...\t%@", [connection identifier]); > return [connection identifier]; > > > > }