当我尝试将ison从我的iphone应用程序发送到php服务器时,我遇到了一些问题。
我创建NSData对象
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:test];
我将其发送到网络服务器
-(void)send:(NSData *)jsonData{
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]
initWithURL:[NSURL
URLWithString:@"http://localhost:8888/jsonserver/try2.php"]];
[request setHTTPMethod:@"POST"];
[request setHTTPBody:jsonData];
NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];
}
我的网络服务器
<?php
$json = $_POST['json'];
$person = json_decode($json);
$file = fopen('test.txt','w+');
fwrite($file, $person);
fclose($file);
?>
我的服务器在文件夹中正确创建了文件,但该文件为空
(我的json文件发送到服务器之前就是这样的[&#34; a&#34;,&#34; b&#34;,&#34; c&#34;])
谢谢你的帮助:P
答案 0 :(得分:0)
我不知道iPhone开发,但看起来你正在邮件正文中发送JSON数据。要在PHP中获取消息正文,您需要使用以下行:
$json = file_get_contents("php://input");
我还要将iPhone端的Content-Type标头设置为“application / json”。
我不知道这在iPhone上是如何工作的,但要记住这一点:POST通常会采用参数并在消息正文中以HTTP查询字符串格式对其进行编码,并使用“application / x-www-form- urlencoded“作为Content-Type标题,因此请确保iPhone方面的软件没有这样做。