2012-02-02 2 views
0

Это может быть дублирующий вопрос, но я не мог найти ответ при поиске. Итак, как мне отправить данные на URL? Heres, что я получил до сих пор:iphone SDK: как отправить данные в URL?

NSString *url = @"https://localhost/login.php"; 
NSURL *urlr = [NSURL URLWithString:url]; 
NSMutableURLRequest *urlre = [[NSMutableURLRequest alloc] init]; 


[urlre setURL:[NSURL URLWithString:url]]; 
NSUserDefaults *defs = [NSUserDefaults standardUserDefaults]; 
NSString *user = [defs stringForKey:@"User"]; 
NSString *pass = [defs stringForKey:@"Pass"]; 
NSInteger *version = [defs integerForKey:@"Version"]; 


NSString *bodyData = [[NSString alloc] initWithFormat:@"user=%@&password=%@&version=%d",user,pass,version]; 
NSData *body = [bodyData dataUsingEncoding:NSASCIIStringEncoding]; 
NSURLResponse *response = nil; 
NSError *error = nil; 


[urlre setHTTPMethod:@"POST"]; 
[urlre setValue:[[NSString alloc] initWithFormat:@"%d",[body length]] forHTTPHeaderField:@"Content-Length"]; 
[urlre setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
[urlre setHTTPBody:body]; 

NSData *dataThis = [NSURLConnection sendSynchronousRequest:urlre returningResponse:&response error:&error]; 

if(dataThis) 
{ 
    NSLog(@"Connect Success"); 
} else { 
    NSLog(@"%@",[error localizedDescription]); 
} 

Правильно ли это? В моем

-(void) connection:(NSURLConnection*)connection didReceiveData:(NSData *)data 

Событие, я ничего не получаю. Даже в didFinishLoading он ничего не получает с NSLog. Пожалуйста помоги.

ответ

0

Вы установили делегата для вашего запроса?

Почему бы вам не взглянуть на использование структуры, такой как ASIHTTPRequest, делает вещи такими простыми. Проверьте это http://allseeing-i.com/ASIHTTPRequest/

+0

Хм, слишком много ошибок компиляции. Я попытался настроить его, хотя. –

+0

Я думаю, что ваши ошибки компиляции связаны с тем, что ASIHTTP не совместим с ARC. То, что вы делаете, это щелкнуть по вашему проекту -> название проекта в разделе TARGETS -> BUILD PHASES -> COMPILE SOURCES, а затем выбрать все файлы ASIHTTP, нажать Enter, появится диалоговое окно, вставьте его в поле flags компиляции -fno -objc-arc. Тогда вы должны быть добры. – sbarow

Смежные вопросы