Register FAQ / Rules Forum Spy Search Today's Posts Mark Forums Read
Go Back   MacRumors Forums > Apple Systems and Services > Programming > iPhone/iPad Programming

Reply
 
Thread Tools Search this Thread Display Modes
Old Dec 10, 2009, 12:13 PM   #1
uaecasher
macrumors 65816
 
uaecasher's Avatar
 
Join Date: Jan 2009
Location: Stillwater, OK
Send a message via AIM to uaecasher Send a message via MSN to uaecasher Send a message via Yahoo to uaecasher
Using Reachability code to check internet connection

hello,

I'm using the source of Reachability project given by apple to check if there is an internet connection, what I did is:

1) Add the Reachability.h and .m from the sample to my project
2) Add the SystemConfiguration.framework
3) the added the following code in my controllerview.m

Code:
[[Reachability sharedReachability] setHostName:@"www.google.com"];

	NetworkStatus internetStatus = [[Reachability sharedReachability] remoteHostStatus];
	
	if ((internetStatus != ReachableViaWiFiNetwork) && (internetStatus != ReachableViaCarrierDataNetwork))
	{
		UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"You require an internet connection via WiFi or cellular network for location finding to work." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
		[myAlert show];
		[myAlert release];
	}

here is the my .m code:

Code:
#import "testPickerViewController.h"
#import "Reachability.h"

@implementation testPickerViewController

@synthesize imgPicker;
@synthesize imgPickerCam;




-(void) viewDidLoad {
	
	[[Reachability sharedReachability] setHostName:@"www.google.com"];
	
	NetworkStatus internetStatus = [[Reachability sharedReachability] remoteHostStatus];
	
	if ((internetStatus != ReachableViaWiFiNetwork) && (internetStatus != ReachableViaCarrierDataNetwork))
	{
		UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"You require an internet connection via WiFi or cellular network for location finding to work." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil];
		[myAlert show];
		[myAlert release];
	}
	
	
	
	
	if ( (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]))
		
	{	
	
	[button removeFromSuperview];
	}	
	
}




- (IBAction)grabImage {

		self.imgPicker = [[UIImagePickerController alloc] init];
	self.imgPicker.delegate = self;	
	self.imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
	[self presentModalViewController:self.imgPicker animated:YES];
		
}

		-(IBAction)grabImageCam {
			
			
				
	self.imgPickerCam = [[UIImagePickerController alloc] init];
	self.imgPickerCam.delegate = self;
	self.imgPickerCam.sourceType = UIImagePickerControllerSourceTypeCamera;
	[self presentModalViewController:self.imgPickerCam animated:YES];
				
}

		


  - (IBAction)uploadImage {
	  [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES];

	/*
	 turning the image into a NSData object
	 getting the image back out of the UIImageView
	 */
	  
	  
	NSData *imageData = UIImageJPEGRepresentation(image.image, 100);
	  

	// setting up the URL to post to
	NSString *urlString = @"http://mozymac.com/upload.php";
	
	// setting up the request object now
	
	NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
	[request setURL:[NSURL URLWithString:urlString]];
	[request setHTTPMethod:@"POST"];

	/*
	 add some header info now
	 we always need a boundary when we post a file
	 also we need to set the content type
	 
	 You might want to generate a random boundary.. this is just the same 
	 as my output from wireshark on a valid html post
	 */
	NSString *boundary = [NSString stringWithString:@"---------------------------14737809831466499882746641449"];
	NSString *contentType = [NSString stringWithFormat:@"multipart/form-data; boundary=%@",boundary];
	[request addValue:contentType forHTTPHeaderField: @"Content-Type"];
	
	/*
	 now lets create the body of the post
	 */
	  
	NSMutableData *body = [NSMutableData data];
	[body appendData:[[NSString stringWithFormat:@"\r\n--%@\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];	
	[body appendData:[[NSString stringWithString:@"Content-Disposition: form-data; name=\"userfile\"; filename=\".jpg\"\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
	[body appendData:[[NSString stringWithString:@"Content-Type: application/octet-stream\r\n\r\n"] dataUsingEncoding:NSUTF8StringEncoding]];
	[body appendData:[NSData dataWithData:imageData]];
	[body appendData:[[NSString stringWithFormat:@"\r\n--%@--\r\n",boundary] dataUsingEncoding:NSUTF8StringEncoding]];
	// setting the body of the post to the reqeust
	[request setHTTPBody:body];
	
	// now lets make the connection to the web
	
	NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
	NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
	  
	
	myTextField.text = (returnString);
	
	  [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:NO];

	
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
	image.image = img;
	
			 
			
	[[picker parentViewController] dismissModalViewControllerAnimated:YES];
	// need to show the upload image button now
	upload.hidden = NO;

}



@end
I'm getting these errors:

uaecasher is offline   0 Reply With Quote
Old Dec 10, 2009, 12:24 PM   #2
dejo
Moderator
 
dejo's Avatar
 
Join Date: Sep 2004
Location: The Centennial State
Quote:
Originally Posted by uaecasher View Post
Code:
[[Reachability sharedReachability] setHostName:@"www.google.com"]
First off, Reachability has no class method named sharedReachability.
__________________
dejo is offline   0 Reply With Quote
Old Dec 10, 2009, 01:22 PM   #3
uaecasher
Thread Starter
macrumors 65816
 
uaecasher's Avatar
 
Join Date: Jan 2009
Location: Stillwater, OK
Send a message via AIM to uaecasher Send a message via MSN to uaecasher Send a message via Yahoo to uaecasher
Quote:
Originally Posted by dejo View Post
First off, Reachability has no class method named sharedReachability.
I was reading an old thread well not so old (june 2009) and found it:

http://www.iphonedevsdk.com/forum/ip...-practice.html

could you tell me how to correct it?, I tired to look for similar code but didn't find any.

Thanks
uaecasher is offline   0 Reply With Quote
Old Dec 10, 2009, 01:32 PM   #4
dejo
Moderator
 
dejo's Avatar
 
Join Date: Sep 2004
Location: The Centennial State
Quote:
Originally Posted by uaecasher View Post
I was reading an old thread well not so old (june 2009) and found it:

http://www.iphonedevsdk.com/forum/ip...-practice.html
Make sure you've read the entire thread, especially post #29.
__________________
dejo is offline   0 Reply With Quote
Old Dec 10, 2009, 01:51 PM   #5
uaecasher
Thread Starter
macrumors 65816
 
uaecasher's Avatar
 
Join Date: Jan 2009
Location: Stillwater, OK
Send a message via AIM to uaecasher Send a message via MSN to uaecasher Send a message via Yahoo to uaecasher
Quote:
Originally Posted by dejo View Post
Make sure you've read the entire thread, especially post #29.
sorry about that, thing is it's almost mid-night here and I didn't notice the 2nd page and most developers are open at this time.


Anyway it works now, but got a question: I'm using google.com as check as it's the most uptime website in the internet but sometimes there is network errors only in specific countries i.e google would not open in x country. Would this problem give the error massage or not.

Thanks
uaecasher is offline   0 Reply With Quote

Reply
MacRumors Forums > Apple Systems and Services > Programming > iPhone/iPad Programming

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Similar Threads
thread Thread Starter Forum Replies Last Post
Set VPN connection on iOS programmatically or openVPN source code Nikaladze iPhone/iPad Programming 0 Apr 7, 2014 10:21 AM
No Internet Connection mikegml Mac mini 12 Nov 18, 2013 01:29 PM
Is there a way I can check an itunes code before buying? mclld Community Discussion 3 Jul 4, 2013 08:16 PM
Internet Recovery Without Internet Connection? jlin615 OS X 2 Aug 20, 2012 12:46 PM

Forum Jump

All times are GMT -5. The time now is 09:38 PM.

Mac Rumors | Mac | iPhone | iPhone Game Reviews | iPhone Apps

Mobile Version | Fixed | Fluid | Fluid HD
Copyright 2002-2013, MacRumors.com, LLC