I am trying to make an HTTP PUT request using
- (void)putPath:(NSString *)path
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure;
Hejazi's answer is simple and should work great.
If, for some reason, you need to be very specific for one request - for example, if you need to override headers, etc. - you can also consider building your own NSURLRequest.
Here's some (untested) sample code:
// Make a request... NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:myURL]; // Generate an NSData from your NSString (see below for link to more info) NSData *postBody = [NSData base64DataFromString:yourBase64EncodedString]; // Add Content-Length header if your server needs it unsigned long long postLength = postBody.length; NSString *contentLength = [NSString stringWithFormat:@"%llu", postLength]; [request addValue:contentLength forHTTPHeaderField:@"Content-Length"]; // This should all look familiar... [request setHTTPMethod:@"POST"]; [request setHTTPBody:postBody]; AFHTTPRequestOperation *operation = [client HTTPRequestOperationWithRequest:request success:success failure:failure]; [client enqueueHTTPRequestOperation:operation];
The NSData category method
base64DataFromString is available here.