 <p>it's better to add error recovery mechanism (if the request fails you will lose your token) and use asynchronous request (send token in background)</p> <p><strong>In your AppDelegate.m:</strong></p> <pre><code>- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken { NSString * token = [NSString stringWithFormat:@"%@", deviceToken]; //Format token as you need: token = [token stringByReplacingOccurrencesOfString:@" " withString:@""]; token = [token stringByReplacingOccurrencesOfString:@"&gt;" withString:@""]; token = [token stringByReplacingOccurrencesOfString:@"&lt;" withString:@""]; [[NSUserDefaults standardUserDefaults] setObject:token forKey:@"apnsToken"]; //save token to resend it if request fails [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"apnsTokenSentSuccessfully"]; // set flag for request status [DataUpdater sendUserToken]; //send token } </code></pre> <p>To send token create new class (or use one of existing): <strong>DataUpdater.h</strong></p> <pre><code>#import &lt;Foundation/Foundation.h&gt; @interface DataUpdater : NSObject + (void)sendUserToken; @end </code></pre> <p><strong>DataUpdater.m</strong></p> <pre><code>#import "DataUpdater.h" @implementation DataUpdater + (void)sendUserToken { if ([[NSUserDefaults standardUserDefaults] boolForKey:@"apnsTokenSentSuccessfully"]) { NSLog(@"apnsTokenSentSuccessfully already"); return; } NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://myhost.com/filecreate.php?token=%@",[[NSUserDefaults standardUserDefaults] objectForKey:@"apnsToken"]]]; //set here your URL NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url]; NSOperationQueue *queue = [[NSOperationQueue alloc] init]; [NSURLConnection sendAsynchronousRequest:urlRequest queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { if (error == nil) { [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"apnsTokenSentSuccessfully"]; NSLog(@"Token is being sent successfully"); //you can check server response here if you need } }]; } @end </code></pre> <p>Then you can call [DataUpdater sendUserToken]; in your controllers when internet connection appears, or periodically, or in <strong>-(void)viewDidLoad or -(void)viewWillAppear</strong> methods</p> <p>My advises: 1) I use AFNetworking to send async request and check server JSON response 2) Some times it's better to use services such as Parse to work with push notifications</p>