Привет, у меня проблема при отправке запроса GET на PHP, тот же PHP отлично работает при запуске его в веб-браузере, вот фрагмент кода как PHP, так и Obj-C PHP
$var1=$_GET['value1']; $var2=$_GET['value2'];
когда я вызываю это в браузере, например http://sample.com/sample.php?value1=hi&value2=welcome, он отлично работает, но от obj ci не может добиться успеха obj C
NSString *url =[NSString stringWithFormat:@"http://sample.com/sample.php"]; NSData *data = [@"sample.php" dataUsingEncoding:NSUTF8StringEncoding]; NSLog(@"%@",url); NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]]; [req setHTTPMethod:@"GET"]; [req setHTTPBody:data]; NSURLConnection *connection = [[[NSURLConnection alloc] initWithRequest:req delegate:self]autorelease]; [connection start];
Пожалуйста помоги?
Проблема в том, что вы устанавливаете HTTPBody (вызывая setHTTPBody
на свой объект запроса), в то время как GET-запросы не имеют тела, переданные данные должны быть добавлены к URL-адресу. Поэтому, чтобы имитировать запрос, который вы сделали в своем браузере, это будет просто так.
NSString *url =[NSString stringWithFormat:@"http://sample.com/sample.php?value1=hi&value2=welcome"]; NSLog(@"%@",url); NSMutableURLRequest *req = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]]; [req setHTTPMethod:@"GET"]; // This might be redundant, I'm pretty sure GET is the default value NSURLConnection *connection = [[[NSURLConnection alloc] initWithRequest:req delegate:self]autorelease]; [connection start];
Разумеется, вы должны правильно закодировать значения своего запроса (см. http://madebymany.com/blog/url-encoding-an-nsstring-on-ios для примера), чтобы убедиться, что ваш запрос действителен.