搜索
首页php教程php手册iOS通过ASIHttpRequest接收php端发送的Json数据

http://blog.csdn.net/zengraoli/article/details/12918369 在blog文 iOS使用ASIHttpRequestJson与服务器段脚本进行登陆验证 中,没有仔细的说清楚,到底是如何交互的,很是抱歉;毕竟我用php也仅限于这几天。。 先来看,我刚才写的一个php端: [php] view p

http://blog.csdn.net/zengraoli/article/details/12918369


在blog文

iOS使用ASIHttpRequest+Json与服务器段脚本进行登陆验证

 中,没有仔细的说清楚,到底是如何交互的,很是抱歉;毕竟我用php也仅限于这几天。。


先来看,我刚才写的一个php端:

[php] view plaincopyprint?

  1.   
  2.         $arr;  
  3.     function traverse($path = '.')   
  4.     {  
  5.         $current_dir = opendir($path);    //opendir()返回一个目录句柄,失败返回false  
  6.         $directory_arr;  
  7.             $file_arr;  
  8.       
  9.             $directory_index = 1;  
  10.             $file_index = 1;  
  11.               
  12.             Global $arr;  
  13.             $arr_index = 0;  
  14.       
  15.         while(($file = readdir($current_dir)) !== false)   
  16.         {    //readdir()返回打开目录句柄中的一个条目  
  17.             $sub_dir = $path . DIRECTORY_SEPARATOR . $file;    //构建子目录路径  
  18.             if($file == '.' || $file == '..')   
  19.             {  
  20.                 continue;  
  21.             }  
  22.             else if(is_dir($sub_dir))   
  23.             {    //如果是目录,进行递归  
  24.             //    echo 'Directory ' . $file . ':
    ';
      
  25.                 $string = "Directory";  
  26.                 $string .= $directory_index;  
  27.                     $directory_arr[$string] = $file;  
  28.                 $directory_index++;  
  29.                 traverse($sub_dir);  
  30.           //      print_r($directory_arr);  
  31.             }   
  32.             else  
  33.             {    //如果是文件,直接输出  
  34.             //    echo 'File in Directory ' . $path . ': ' . $file . '
    ';
      
  35.                 $file_arr[$file_index] = $path . '\\' . $file . '
    ';  
  36.                 $file_index++;  
  37.             }  
  38.         };  
  39.           
  40.         $arr["dir_count"] = count($directory_arr);  
  41.     //    print_r($file_arr);  
  42.     //    print_r(count($file_arr));  
  43.    //     echo '
    ';
      
  44.     //    echo "==============================";  
  45.     //    echo '
    ';
      
  46.           
  47.         // 有一个是title需要先减出来,还有一半是.txt  
  48.         $arr[$path] = (count($file_arr) - 1) / 2;  
  49.     }  
  50.   
  51.     traverse('Images');  
  52. //    print_r($arr);  
  53.       
  54. //    print_r(json_encode($arr));  
  55.       
  56.     $resultJson = json_encode($arr);  
  57.     echo $resultJson;  
  58. ?>  


在服务器端直接运行这个php脚本之后得到的页面如下:

iOS通过ASIHttpRequest接收php端发送的Json数据


这是一个获取当前webroot目录下,Images文件夹里面的目录个数,和这些目录个数下面.jpg文件个数的一个demo

这是其中一个day1的内容:

iOS通过ASIHttpRequest接收php端发送的Json数据


在对应的iOS端,这样写:

[cpp] view plaincopyprint?

  1. //  
  2. //  ViewController.m  
  3. //  Demo  
  4. //  
  5. //  Created by zengraoli on 13-10-20.  
  6. //  Copyright (c) 2013年 zeng. All rights reserved.  
  7. //  
  8.   
  9. #import "ViewController.h"  
  10. #import "UIView+Additon.h"  
  11.   
  12.   
  13. @interface ViewController ()  
  14.   
  15. @end  
  16.   
  17. @implementation ViewController  
  18.   
  19. - (void)viewDidLoad  
  20. {  
  21.     [super viewDidLoad];  
  22.     // Do any additional setup after loading the view, typically from a nib.  
  23.       
  24.     [self getResourcesCount];  
  25. }  
  26.   
  27. -(void)getResourcesCount  
  28. {  
  29.     NSString *baseurl=@"get_resources_count.php";  
  30.       
  31.     NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@",host_url,baseurl]];  
  32.     [self setRequest:[ASIHTTPRequest requestWithURL:url]];  
  33.     [_request addRequestHeader:@"User-Agent" value:@"ASIHTTPRequest"];  
  34.     [_request startSynchronous];  
  35.       
  36.     //显示网络请求信息在status bar上  
  37.     [ASIHTTPRequest setShouldUpdateNetworkActivityIndicator:YES];  
  38.       
  39.     if (_request)  
  40.     {  
  41.         if ([_request error])  
  42.         {  
  43.             NSLog(@"error");  
  44.         }  
  45.         else if ([_request responseString])  
  46.         {  
  47.             NSString *result = [_request responseString];  
  48. //            NSLog(@"%@",result);  
  49.             NSDictionary *mydict = [result JSONValue];  
  50.               
  51.             describeDictionary(mydict);  
  52.         }  
  53.     }  
  54.     else  
  55.     {  
  56.         NSLog(@"request is nil.");  
  57.     }  
  58. }  
  59.   
  60. void describeDictionary(NSDictionary *dict)  
  61. {  
  62.     NSArray *keys;  
  63.     int i, count;  
  64.     id key, value;  
  65.       
  66.     keys = [dict allKeys];  
  67.     count = [keys count];  
  68.     for (i = 0; i 
  69.     {  
  70.         key = [keys objectAtIndex: i];  
  71.         value = [dict objectForKey: key];  
  72.         NSLog (@"Key: %@ for value: %@", key, value);  
  73.     }  
  74. }  
  75.   
  76. @end  


这是调用这段代码后,解析Json数据得到的结果:

iOS通过ASIHttpRequest接收php端发送的Json数据

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
如何在 iPhone 上更改数字格式如何在 iPhone 上更改数字格式Apr 13, 2023 pm 06:16 PM

您可以在 iOS 16 上选择哪些数字格式随着对 iOS 16.4 (beta 2) 的更改,您可以为您的 iPhone 选择三种不同的数字格式。这些格式使用空格、逗号和句点作为分隔数字中千位的符号或作为小数点。小数点是用于将值的整数部分与其小数部分分开的字符,通常由句点 (.) 或逗号 (,) 分配。千位分隔符用于将多位数的数字分成三组,通常由句点 (.)、逗号 (,) 或空格 ( ) 指定。 在最新版本的 iOS 上,您将能够应用以下任何一种数字格式作为您 iPhone 的首选选项:1,23

如何在 iPhone 上的 Always-on Display 上关闭墙纸和通知如何在 iPhone 上的 Always-on Display 上关闭墙纸和通知Apr 16, 2023 pm 11:07 PM

iOS16是Apple移动设备的重大更新,因为它不仅引入了新功能,还为iPhone14Pro和ProMax带来了独家功能。这些新款iPhone是Apple首款配备常亮显示屏的iPhone。苹果对AOD的看法略有不同,不是整个屏幕变黑,而是显示变暗,刷新率动态降低到1Hz。不用说,这并不适合世界各地的许多用户和评论者,因为大多数人会不经意地检查他们的手机,并假设这是一条通知而不是AOD。Apple似乎已经在最新版本的iOS16中认识到并纠正了这个问题,增加

Chrome 未安装在 iPad 上:3 种轻松修复它的方法Chrome 未安装在 iPad 上:3 种轻松修复它的方法Apr 14, 2023 pm 03:13 PM

浏览互联网已成为我们大多数人的第二天性,我们目前生活在一个时代,它已成为我们所做的几乎所有事情的代名词。它不仅是我们用来购物,或与亲朋好友相聚的地方,它也成为了一种宝贵的工作用具。自从COVID-19大流行开始,混合工作成为新常态以来,浏览器和通信软件已成为我们与同事之间的新纽带。而且,在我们所有流行的浏览器选择中,绝大多数用户决定使用谷歌的Chrome。现在,您不一定需要运行Microsoft支持的操作系统才能使用Chrome,因为该软件也可以在其他软件上正常运行。话虽这么说,如果您尝试在

如何在 iOS 15 中阻止电话号码如何在 iOS 15 中阻止电话号码Apr 13, 2023 am 11:37 AM

虽然不需要的电话是日常生活的一部分,但您的 iPhone 提供了一些不同的选项来使特别顽固的来电者静音。这是在iOS 15上阻止或静音不需要的电话的方法。屏蔽电话号码可以为您减轻很多压力。一旦被阻止,您将不会收到来自被阻止号码的任何呼叫的提醒。此外,呼叫者将被允许留下语音邮件,但您不会收到已留下语音邮件的通知。打开电话应用滚动到您要阻止的号码点击号码旁边的信息图标向下滚动并点按阻止此来电者点击阻止联系人您也可以在FaceTime应用程序中按照相同的步骤来阻止持续的 FaceTime 呼叫者。被屏

适用于 iOS 的微软待办通过滚动改进等进行了更新适用于 iOS 的微软待办通过滚动改进等进行了更新Apr 14, 2023 am 09:37 AM

微软待办已收到 iOS 更新,将版本升级至 2.75,并添加了一些值得注意的更改。最新版本的任务管理应用程序提供更流畅的体验。这是因为微软在最新版本的应用程序中引入了滚动改进。除此之外,最新版本还可能带有错误修复和改进。您可以在下面阅读完整的官方变更日志。微软待办 2.75 版几个月前,微软更新了它的 To Do iOS 应用程序,让用户更容易为他们的任务添加注释。它旨在为您的

iOS 16 中的 Apple Wallet 让你离抛弃你的钱包更近了一步iOS 16 中的 Apple Wallet 让你离抛弃你的钱包更近了一步Apr 14, 2023 am 08:22 AM

iOS 16 已经准备好再次推动你放弃实体钱包。对 iOS 16 所做的更改包括一些仅限于美国地区的功能,但苹果也愿意将其部分功能开放给其他平台。首先,马里兰州和亚利桑那州现在支持 Apple 的数字身份验证服务 Wallet ID。除了这两个,Apple 还表示很快还会有另外 11 个,但没有任何关于哪些州的进一步信息。钱包 ID 也可以在 Uber 等应用中使用,并且不必分享您的具体信息。例如,它可以说您已超过 21 岁,但不提供您的实际年龄。Apple Wallet 中的数字密钥也可以通过

ios是linux系统吗ios是linux系统吗Nov 19, 2021 pm 03:14 PM

ios不是linux,ios实际上是Darwin的ARM变体,源自BSD,类UNIX内核以及Apple自己的Mach内核扩展系统;这与Linux是完全不同的,Linux是一个单片内核,所有驱动程序代码和I/O工具包都是核心内核的一部分。

iOS 16.2 引入“自定义辅助功能模式”,为 iPhone 和 iPad 提供简化的体验iOS 16.2 引入“自定义辅助功能模式”,为 iPhone 和 iPad 提供简化的体验Apr 13, 2023 am 11:07 AM

苹果公司周二向开发人员发布了iOS 16.2 beta 2,因为该公司准备在 12 月向公众提供更新。正式地,它添加了新的 Freeform 协作应用程序和对 Home 应用程序的改进。在后台,9to5Mac发现 Apple 一直在开发一种新的“自定义辅助功能模式”,该模式将为 iPhone 和 iPad 提供“流线型”体验。自定义辅助功能模式这种代号为“Clarity”的新模式基本上用更精简的模式取代了 Springboard(这是 iOS 的主要界面)。该功能在当前测试版中仍对用户不可用,将

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前By尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SublimeText3 英文版

SublimeText3 英文版

推荐:为Win版本,支持代码提示!

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具