Php Cocoa使用nsurlrequest发布数据
我已经成功地为我的iphone应用程序制作了一个PHP REST Web服务。下面是带有url请求的代码,目前可以使用。我的问题是: 如何将其转换为随请求发送用户名,以便获取单个用户,而不仅仅是所有用户 我想我需要发个帖子什么的。我已经试了好几个小时了,但什么也没用。如何从我的PHP web服务中获取POST数据?我想这并不是像POST那么简单吧 我完全不知道这个问题,任何帮助都是感激的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 =
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中发布我的答案。为什么否决我的问题?否决你的答案,因为它可以像那样工作。事实上,我刚刚得到了工作岗位,所以我将张贴我的答案在第二秒。无论如何,谢谢您的时间:)