2013-05-31 51 views
-3

我想請求用POST,一個URL解析參數,但mypage.php沒有收到這個參數不工作... 這裏是我的代碼:NSURLConnection的使用POST

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://myurl/mypage.php"]]; 
NSString *params = [[NSString alloc]initWithFormat:@"name=%@&surname=%@&location=%@&email=%@&password=%@&gender=%@&tipo=%@", name, surname, location, email, password, gender, tipo];     
[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:[params dataUsingEncoding:NSUTF8StringEncoding]]; 
NSLog(params); 
NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self]; 
if (conn) { 
    webData = [[NSMutableData data] retain]; 
} 
else 
{ 
} 

和mypage.php

if($_POST['name'] != "" && $_POST['email'] != "") 
//Here the $_POST['name'] and the $_POST['email'] are empty... 
+2

請仔細閱讀說明書中對於「Xcode的」標籤。這不適合你的問題。 – rmaddy

+1

只是一個提示:任何時候你的標題有問題「<一些語言特性>不起作用」你瞬間偏見你很多讀者。在所有的概率<一些語言功能>工作得很好,但你根本不知道如何使用它。 –

回答

0

你沒有開始連接。你應該用[conn start];

+0

它不工作 –

+2

「它不工作」是無益的。有沒有控制檯日誌消息?錯誤?你是否實現了任何委託方法?你怎麼知道腳本中是空的,腳本不是不被調用的?你能發佈*完整*代碼嗎? – uliwitness

+0

我已經解釋了我的意思與「不工作」的結果是「
」不在狀態從mypage.php輸入如果($ _ POST [「名稱」]!=「」 && $ _ POST [「電子郵件」] !=「」) –

0

做試試這個:

NSString *params=[NSString stringWithFormat:@"name=%@&surname=%@&location=%@&email=%@&password=%@&gender=%@&tipo=%@", name, surname, location, email, password, gender, tipo]; 
NSData *postData=[params dataUsingEncoding:NSUTF8StringEncoding]; 
NSURL *url = [NSURL URLWithString:@"http://myurl/mypage.php"]; 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; 
[request setHTTPMethod:@"POST"]; 
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setHTTPBody:postData]; 
[request setValue:[NSString stringWithFormat:@"%i",postData.length] forHTTPHeaderField:@"Content-Length"]; 

NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
if (data!=nil) { 
    NSString *output=[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    NSLog(@"output: %@", output); 
}else{ 
    NSLog(@"data is empty"); 
}