2013-11-21 119 views
0

我有问题。我发送到服务器POST请求程序(xcode,我开发目标C),数据发送,但我需要在网站上注册(身份验证),我不知道,我怎么发送这个字符串发送数据到网站

NSString * param = [NSString stringWithFormat:@"action=login&name=%@&password=%@", myName, myPassword] 

我的代码完全:

request.HTTPMethod = @"POST"; 

NSString * myName = _loginLogin.text; 
NSString * myPassword= _passwordLogin.text; 

NSString * param = [NSString stringWithFormat:@"action=login&name=%@&password=%@", myName, myPassword]; 
request.HTTPBody = [param dataUsingEncoding:NSUTF8StringEncoding]; 

NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

我这个* (www.dnevnik.ru)工作 *页。

和我的网站字符串NSString *postString = [NSString stringWithFormat:@"&username=%@&password=%@", username, password];不适合?

+0

您需要解析委托回调NSURLConnectionDelegate响应 – Tim

回答

1

使用下面的代码: 只需添加

@property (nonatomic, strong) NSMutableData *responseData; 

在你.H文件

NSUserDefaults *loginData = [NSUserDefaults standardUserDefaults]; 
    NSString *username = [loginData objectForKey:@"username"] ; 
    NSString *password = [loginData objectForKey:@"password"]; 

    NSString *postString = [NSString stringWithFormat:@"&username=%@&password=%@", username, password]; 
    NSString *urlString = @"http://YourUrl"; 
    NSURL *myURL = [NSURL URLWithString:[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 

    NSMutableURLRequest *detailRequestToServer =[NSMutableURLRequest requestWithURL:myURL cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60.0]; 
    [detailRequestToServer setHTTPMethod:@"POST"]; 
    [detailRequestToServer setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 
    const char *utfString = [postString UTF8String]; 
    NSString *utfStringLenString = [NSString stringWithFormat:@"%zu", strlen(utfString)]; 
    [detailRequestToServer setHTTPBody:[NSData dataWithBytes: utfString length:strlen(utfString)]]; 
    [detailRequestToServer setValue:utfStringLenString forHTTPHeaderField:@"Content-Length"]; 

    NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:detailRequestToServer delegate:self]; 
    if (theConnection) 
    { 
     self.responseData = [[NSMutableData alloc] init]; 
    } 
    else 
     NSLog(@"Connection Failed!"); 
0
NSString *bodyData = [NSString stringWithFormat:@"action=login&name=%@&password=%@", myName, myPassword]; 

    NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://www.apple.com"]]; //replace your url here 

    // Set the request's content type to application/x-www-form-urlencoded 
    [postRequest setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"]; 

    // Designate the request a POST request and specify its body data 
    [postRequest setHTTPMethod:@"POST"]; 
    [postRequest setHTTPBody:[NSData dataWithBytes:[bodyData UTF8String] length:strlen([bodyData UTF8String])]]; 

// Create the NSMutableData to hold the received data. 
// receivedData is an instance variable declared elsewhere. 
receivedData = [NSMutableData dataWithCapacity: 0]; 

// create the connection with the request 
// and start loading the data 
NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:postRequest delegate:self]; 
if (!theConnection) { 
    // Release the receivedData object. 
    receivedData = nil; 

    // Inform the user that the connection failed. 
}