2011-07-29 33 views
1

獲取信息,我有

NSString *post = [NSString stringWithFormat:@"json=%@",jsonString]; 
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO]; 
NSMutableData *postMutData = [[NSMutableData alloc] initWithData:postData]; 
ASIFormDataRequest *asi_request = [ASIFormDataRequest requestWithURL:[NSURL URLWithString:urlString]]; 
[asi_request setDidFinishSelector:@selector(gotMyInfo:)]; 
[asi_request setPostBody:postMutData]; 
[asi_request setDelegate:self]; 
[asi_request startAsynchronous]; 

,並在我的PHP,我有

$json = $_POST['json']; 
$info = json_decode($json); 

,但我得到一個錯誤:未定義指數'JSON' 這是奇怪,因爲我檢查與

$input = file_get_contents('php://input'); 
echo $input; 

後,它顯示了JSON = {....}正常。 我知道我可以使用$輸入並從那裏解碼json,但它看起來很「醜陋」。有誰知道爲什麼$ _POST不適合這個?

在此先感謝

+0

是否有一個原因,爲什麼你不只是張貼香草JSON作爲身體而不是使用JSON''=這更像是一個查詢字符串參數? –

+1

哇我找到了問題.. 我用setPostBody:postMutData不發送表單數據到PHP,所以PHP不會識別它與$ _POST 我需要做[asi_request addPostValue:jsonString forKey: @ 「JSON」]; 然後它會發送?json = {...} –

回答

0

哇我找到了問題..我使用setPostBody:postMutData不發送表單數據到PHP,所以PHP不會識別它與$ _POST I做

[asi_request addPostValue:jsonString forKey:@"json"]; 

那麼它就會發送所需要的?JSON = {...}

0

檢查post_max_size在php.ini。

; Maximum size of POST data that PHP will accept. 
post_max_size = 8M 

默認。嘗試將8M更改爲(例如)20M