Here is what I use to synchronously POST NSData to a web script using ASIHTTPRequest.
Code:
NSData *data = nil; // replace nil with your NSData
NSString *urlStr = [[NSString alloc] initWithFormat:@"http://www.example.com/"];
NSURL* url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
[urlStr release];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request addRequestHeader:@"Content-Type" value:@"application/octet-stream"];
[request setTimeOutSeconds:600]; // 10 minutes
[request appendPostData:data];
[request setUploadProgressDelegate:aUIProgressView];
[request setShowAccurateProgress:YES];
[request startSynchronous];