Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

uaecasher

macrumors 65816
Original poster
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:

 
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
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.