2011-11-23 60 views
0

我想使用POST以json格式发送数据到我的webservice。我的服务器上有一个php页面,它接收json字符串并将其打印出来。使用Xcode发布json

问题是,收到的POST数组是空的,下面是我在我的应用程序代码:

NSString *jsonRequest = @"{\"username\":\"james\",\"password\":\"james1234\"}"; 
NSData *requestData = [NSData dataWithBytes:[jsonRequest UTF8String] length:[jsonRequest length]]; 
NSURL *url = [NSURL URLWithString:[[NSString alloc] initWithFormat:@"http://mydomain.com/check.php"]]; 

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60.0]; 

[request setHTTPMethod:@"POST"]; 
[request setHTTPBody:requestData]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"]; 
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
[request setValue:[NSString stringWithFormat:@"%d",[requestData length]] forHTTPHeaderField:@"Content-Length"]; 

[NSURLConnection connectionWithRequest:[request autorelease] delegate:self]; 

的check.php具有下面的代码:

<?php 

    print_r($_POST); 
?> 

我得到以下输出: Array( )

我已经试过了一切,并且似乎无法获取发送到我的web服务的json字符串。我相信,我错过了一些东西,但我不知道它是什么。

+0

尝试添加'内容Length'头... – Macmade

+0

我相信,我有内容长度码,这是开头的最后一行用[请求...... – Ruwenzori

+0

对不起,错过了... – Macmade

回答

2

我得到它的工作,我不得不使用ASIHTTP库。下面是代码:

NSURL *url = [NSURL URLWithString:[[NSString alloc] initWithFormat:@"http://mydomain.com/check.php"]]; 

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
[request setRequestMethod:@"POST"]; 
[request setDelegate:self]; 
[request setPostValue:@"james" forKey:@"username"]; 
[request setPostValue:@"james1234" forKey:@"password"]; 
[request startAsynchronous]; 
+0

忘记了以下代码行,就在startAsynchronous之前 [request setPostValue:@“submit”forKey:@“post”]; [request startAsynchronous]; – Ruwenzori