Php 使用Xcode发布json

Php 使用Xcode发布json,php,json,post,xcode4,nsmutableurlrequest,Php,Json,Post,Xcode4,Nsmutableurlrequest,我正在尝试使用POST将json格式的数据发送到我的Web服务。我的服务器上有一个php页面,它接收json字符串并将其打印出来 问题是,接收的POST数组为空,下面是我在应用程序中的代码: NSString *jsonRequest = @"{\"username\":\"james\",\"password\":\"james1234\"}"; NSData *requestData = [NSData dataWithBytes:[jsonRequest UTF8String] lengt

我正在尝试使用POST将json格式的数据发送到我的Web服务。我的服务器上有一个php页面,它接收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];
php包含以下代码:

<?php

    print_r($_POST);
?>

我得到以下输出: 排列( )


我尝试了所有方法,但似乎无法将json字符串发送到我的Web服务。我确信,我遗漏了一些东西,但我不知道它是什么。

我让它工作,我不得不使用图书馆。代码如下:

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];

尝试添加
内容长度
标题…我相信,我确实有内容长度代码,它是以开头的最后一行[请求…您可能还想尝试使用
application/x-www-form-urlencoded
作为内容类型。而且我认为不需要
Accept
标题…您好,MacMake,我确实尝试了应用程序/x-www-from-urlencoded,但不幸的是它对我无效。谢谢您的建议。忘记了下面的代码行,就在e StartSynchronous[request setPostValue:@“submit”forKey:@“post”];[request StartSynchronous];