多个POST参数


Xcode - Multiple POST parameters

我得到了以下代码,用于向PHP页面发送POST请求:

NSString *urlString = @"http://example.php";
NSURL *url = [NSURL URLWithString:urlString];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSString *variableToSend = [NSString stringWithFormat:@"test=my real data"];
[request setHTTPMethod:@"POST"];
[request setValue:[NSString stringWithFormat:@"%d", [variableToSend length]] forHTTPHeaderField:@"Content-length"];
[request setHTTPBody:[variableToSend dataUsingEncoding:NSUTF8StringEncoding]];

// Create url connection and fire request
NSData *response = [NSURLConnection sendSynchronousRequest:request
                                         returningResponse:nil error:nil];
NSLog(@"Response: %@",[[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding]);

这很好。然而,如果我想要更多的变量呢?使用上面的代码,我可以在PHP中这样做:$_POST['test'],它将打印出"我的真实数据"。但是如果我想要另一个POST参数呢?也许像$_POST["另一个"]?我该怎么做呢?

谢谢大家

如果你需要从int, float, string等发送数据…你可以这样做:例如,您想要发送姓名和姓氏

    NSString *sendData = @"name=";
    sendData = [sendData stringByAppendingString:[NSString stringWithFormat:@"%@", name]];
    sendData = [sendData stringByAppendingString:@"&lastname="];
    sendData = [sendData stringByAppendingString:[NSString stringWithFormat:@"%@", lastname]];
    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com/userName"]];
    [request setValue:@"gzip" forHTTPHeaderField:@"Accept-Encoding"];
    //Here you send your data
    [request setHTTPBody:[sendData dataUsingEncoding:NSUTF8StringEncoding]];
    [request setHTTPMethod:@"POST"];
    NSError *error = nil;
    NSURLResponse *response = nil;
    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    if (error)
    {
        NSLog(@"Error");
    }
    else
    {
       //The response is in data
    }

php中返回json_encode数组,然后在ios中使用NSDictionary读取

您感兴趣的行是这一行:

NSString *variableToSend = [NSString stringWithFormat:@"test=my real data"];

在这样的HTTP请求中,使用&分隔参数,如下所示:

NSString *variableToSend = [NSString stringWithFormat:@"field1=value&field2=othervalue"];