Php Cocoa使用nsurlrequest发布数据

Php Cocoa使用nsurlrequest发布数据,php,ios,web-services,cocoa,Php,Ios,Web Services,Cocoa,我已经成功地为我的iphone应用程序制作了一个PHP REST Web服务。下面是带有url请求的代码,目前可以使用。我的问题是: 如何将其转换为随请求发送用户名,以便获取单个用户,而不仅仅是所有用户 我想我需要发个帖子什么的。我已经试了好几个小时了,但什么也没用。如何从我的PHP web服务中获取POST数据?我想这并不是像POST那么简单吧 我完全不知道这个问题,任何帮助都是感激的 User *newUser = [[User alloc] init]; NSURL *url =

我已经成功地为我的iphone应用程序制作了一个PHP REST Web服务。下面是带有url请求的代码,目前可以使用。我的问题是:

如何将其转换为随请求发送用户名,以便获取单个用户,而不仅仅是所有用户

我想我需要发个帖子什么的。我已经试了好几个小时了,但什么也没用。如何从我的PHP web服务中获取POST数据?我想这并不是像POST那么简单吧

我完全不知道这个问题,任何帮助都是感激的

User *newUser = [[User alloc] init];

    NSURL *url = [NSURL URLWithString:@"http://photoapp.steffenamby.dk/REST/userbyusername"];


    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url];
    NSURLResponse *response = nil;
    NSError *error = nil;
    NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest
                                          returningResponse:&response
                                                      error:&error];


    if(data.length > 0 && error == nil){
        NSDictionary *userdata = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];

        [newUser setUserid:[[userdata objectForKey:@"id"] intValue]];
        [newUser setUsername:username];
        [newUser setAge: [[userdata objectForKey:@"age"] intValue]];
        [newUser setFirstname:[userdata objectForKey:@"firstname"]];
        [newUser setLastname:[userdata objectForKey:@"lastname"]];
        [newUser setEmail:[userdata objectForKey:@"email"]];

    }

您不需要使用POST请求将参数传递给web服务器。在您的示例中,最简单的更改是向现有URL添加基于URL的查询参数:


然后在服务器上的PHP代码中查找参数值$_GET['user'],在上面的GET URL请求中,该参数值将是“Teilmann”。

我自己似乎已经找到了答案

在web服务中,只需一个普通的$u POST['username']即可获得值

在客户端上,我将请求更改为:

   -(User *) getUserDetailsByUsername:(NSString *)username{
        User *newUser = [[User alloc] init];

        if([username length] > 0){

            NSURL *aUrl = [NSURL URLWithString:@"http://example.com/userbyusername"];
            NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:aUrl
                                                                   cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                               timeoutInterval:60.0];

            [request setHTTPMethod:@"POST"];
            NSString *postString = [NSString stringWithFormat:@"username=%@", username];
            [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];

            NSURLResponse *response = nil;
            NSError *error = nil;
            NSData *data = [NSURLConnection sendSynchronousRequest:request
                                                 returningResponse:&response
                                                             error:&error];

            if(data.length > 0 && error == nil){
                NSDictionary *userdata = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];

                [newUser setUserid:[[userdata objectForKey:@"id"] intValue]];


[newUser setUsername:[userdata objectForKey:@"username"]];
                [newUser setAge: [[userdata objectForKey:@"age"] intValue]];
                [newUser setFirstname:[userdata objectForKey:@"firstname"]];
                [newUser setLastname:[userdata objectForKey:@"lastname"]];
                [newUser setEmail:[userdata objectForKey:@"email"]];

            }

        }

        return newUser;
    }

我不能在客户端发表评论,但是所有的POST参数都可以通过
$\u POST['your\u param\u name']
获得,是的。谢谢你,mabi,我实际上刚刚看到我就是这么简单。我也想出了如何在客户端实现这一点。将在min中发布我的答案。为什么否决我的问题?否决你的答案,因为它可以像那样工作。事实上,我刚刚得到了工作岗位,所以我将张贴我的答案在第二秒。无论如何,谢谢您的时间:)