我目前正在使用以下脚本打印json文件
<?PHP
include ('connect.php');
$get_student = mysql_query("SELECT * FROM student ORDER BY name asc");
$anArray = json_decode ($data);
while ($row = mysql_fetch_assoc($get_student)) {
$anArray[] = $row;
}
header("Content-type: application/json");
echo json_encode ($anArray, JSON_PRETTY_PRINT)
?>
然后我使用AFNETWORKING在xcode中获取json文件并将其保存到文档目录中
url = [NSURL URLWithString:@"url/Json3.php"];
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];
AFHTTPRequestOperation *downloadOperation = [[AFHTTPRequestOperation alloc] initWithRequest:request];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *path = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"database"];
downloadOperation.outputStream = [NSOutputStream outputStreamToFileAtPath:path append:NO];
[downloadOperation start];
然后我尝试使用以下
将下载的文档作为JSON文件读取NSURL *JsonUrl = [NSURL fileURLWithPath:path];
NSURLRequest *JSONrequest = [[NSURLRequest alloc] initWithURL:JsonUrl];
AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:JSONrequest success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
anArray = JSON;
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
NSLog(@"Request Failed with Error: %@, %@", error, error.userInfo);
}];
[operation start];
然而,AFNetworking在log
中给出了以下错误行请求失败并显示错误:错误域= AFNetworkingErrorDomain代码= -1016“预期内容类型{( “文/ JSON”, “应用程序/ JSON”, “文/ JavaScript的” 得到text / plain“UserInfo = 0xa49f990 {NSLocalizedRecoverySuggestion = [
然后在日志中显示文本文档内容
问题
如何制作PHP JSON Print,打印Application / Json文档而不是文本文档?
由于
答案 0 :(得分:0)
假设它已经发送了标题问题,在你的“connect.php”中,在最顶端,放
ob_start();
这将开始outbut缓冲,这基本上意味着,php不会向浏览器发送任何内容,直到所有内容都被呈现(或者直到缓冲区被发送,停止等等。)
如果是其他内容并且您只想将数据保存到json文件中,则可以使用
file_put_contents('myfile.json', json_encode($anArray, JSON_PRETTY_PRINT));
此外,您传递给json_encode函数的标志可能存在问题。只是一个想法。
答案 1 :(得分:0)
检查connect.php的内容,在php结束标记之后没有空格,或者只删除?&gt;
答案 2 :(得分:0)
好的,我没有解决打印问题,但只需一行简单的代码即可解决问题
[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/plain"]];
希望这可以帮助有类似问题的人