ios网络请求

爬虫一

若如初见. 提交于 2019-12-05 15:19:32
爬虫:   1,爬虫基础 #1、什么是互联网? 互联网是由网络设备(网线,路由器,交换机,防火墙等等)和一台台计算机连接而成,像一张网一样。 #2、互联网建立的目的? 互联网的核心价值在于数据的共享/传递:数据是存放于一台台计算机上的,而将计算机互联到一起的目的就是为了能够方便彼此之间的数据共享/传递,否则你只能拿U盘去别人的计算机上拷贝数据了。 #3、什么是上网?爬虫要做的是什么? 我们所谓的上网便是由用户端计算机发送请求给目标计算机,将目标计算机的数据下载到本地的过程。 #3.1 只不过,用户获取网络数据的方式是: 浏览器提交请求->下载网页代码->解析/渲染成页面。 ``` #3.2 而爬虫程序要做的就是: 模拟浏览器发送请求->下载网页代码->只提取有用的数据->存放于数据库或文件中   #3.1与3.2的区别在于: ``` 我们的爬虫程序只提取网页代码中对我们有用的数据 #4、总结爬虫 #4.1 爬虫的比喻: 如果我们把互联网比作一张大的蜘蛛网,那一台计算机上的数据便是蜘蛛网上的一个猎物,而爬虫程序就是一只小蜘蛛,沿着蜘蛛网抓取自己想要的猎物/数据 ``` #4.2 爬虫的定义: ``` 向网站发起请求,获取资源后分析并提取有用数据的程序 ``` #4.3 爬虫的价值: 互联网中最有价值的便是数据,比如天猫商城的商品信息,链家网的租房信息,雪球网的证券投资信息等等

AFNetworking到底长啥样(下)

坚强是说给别人听的谎言 提交于 2019-12-04 18:05:07
在 AFNetworking到底长啥样(上) 中简单介绍了AFN涉及的主要类及其结构,接下来以一个简单的POST请求探寻其内部是如何实现的。 一、环境搭建 服务器配置 本例中直接使用iMac自带的Apache,并为其开启PHP支持。在服务器目录下编写index.php文件如下: <?php echo @"This is Layne's Response"; ?> 编写测试App 创建一个测试App,在主界面上增加一个按钮,在按钮的点击函数中发起网络请求,如下: - (AFHTTPSessionManager *)manager{//lazy if(!_manager){ _manager = [AFHTTPSessionManager manager]; } return _manager; } - (void)click{ [self.manager POST:@"http://www.layne.com" parameters:@{@"name":@"layne",@"age":@30} headers:@{@"TestName":@"myTest"} progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id _Nullable responseObject) { NSLog(@"success:%@"

Tornado

ε祈祈猫儿з 提交于 2019-12-04 08:43:20
引言 回想Django的部署方式 以Django为代表的python web应用部署时采用wsgi协议与服务器对接(被服务器托管),而 这类服务器通常都是基于多线程 的,也就是说 每一个网络请求服务器都会有一个对应的线程来用web应用(如Django)进行处理 。 考虑两类应用场景 用户量大,高并发 如秒杀抢购、双十一某宝购物、春节抢火车票 大量的HTTP持久连接 使用同一个TCP连接来发送和接收多个HTTP请求/应答,而不是为每一个新的请求/应答打开新的连接的方法。 对于HTTP 1.0,可以在请求的包头(Header)中添加Connection: Keep-Alive。 对于HTTP 1.1,所有的连接默认都是持久连接。 对于这两种场景, 通常基于多线程的服务器很难应对 。 C10K问题 对于前文提出的这种高并发问题,我们通常用C10K这一概念来描述。C10K—— Concurrently handling ten thousand connections,即并发10000个连接。对于单台服务器而言,根本无法承担,而采用多台服务器分布式又意味着高昂的成本。如何解决C10K问题? Tornado Tornado在设计之初就考虑到了性能因素,旨在解决C10K问题,这样的设计使得其成为一个拥有非常高性能的解决方案( 服务器与框架的集合体 )。 1 关于Tornado 知识点

mac端的优秀抓包工具——Charles使用

送分小仙女□ 提交于 2019-12-03 09:03:34
mac端的优秀抓包工具——Charles使用 一、简介 Charles是mac端的一款截取与分析网络请求的工具,在网络开发中使用其作分析,可以大大提高我们的开发效率。Charles是收费软件,一般可以试用三十天,但是可以通过相应的破解来获取服务(这里只做演示使用,希望大家购买正版软件)。Charles软件和破解包下载地址: http://pan.baidu.com/s/1ySsUy 。 二、安装与使用 下载好压缩包后,解压打开,将软件包拖入应用程序文件夹中,这时候一个原版的软件就可以让我们使用,只是有一个试用期,右键单击我们的Charles应用,显示包内容: 将如下文件夹中的jar包替换为我们破解文件夹中的jar包: 三、使用Charles在mac上进行抓包分析 在软件安装完成后,我们已经可以在mac上截取一般的网络请求了,打开软件,将Proxy设置中的Mac OS X Proxy勾选,设置为网络代理,这时候如果发生网络请求,就可以被Charles截获到 如果我们需要截取SSL协议的网络请求,这时候我们还需要安装一个证书: http://yun.baidu.com/s/1o6J2Crg 。注意将证书权限设置为始终信任。 抓获信息的界面如下: 软件的功能十分强大,Structure是将请求按域名排序,Sequence是将请求时间排序

iOS之Charlse抓包工具的使用

匿名 (未验证) 提交于 2019-12-03 00:36:02
参考: https://blog.csdn.net/Naruto_22/article/details/72900708 https://www.cnblogs.com/mawenqiangios/p/8270238.html https://blog.csdn.net/qq_18524107/article/details/78028239 乱码解决: https://www.jianshu.com/p/7a332f6ccfbd https抓包: https://blog.csdn.net/mysimplelove/article/details/78951461 在手机中的设设置---》无线局域网--〉选择当前的网络--》底部的配置代理,选择手动,吧当前电脑的IP地址填入url,端口号8888; 在charlse的菜单栏点击proxy--》Macosproxy; 可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。 对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles 可以自动帮你将 JSON

iOS中的网络编程基础(一)

匿名 (未验证) 提交于 2019-12-03 00:30:01
客户端 :移动应用(iOS、android等) 服务器 :为客户端提供服务、提供数据、提供资源的机器 请求 :客户端向服务器索取数据的一种行为 响应 :服务器对客户端的请求做出的反应,一般指返回数据给客户端 URL(Uniform Resource Locator) 通过一个URL,能找到互联网唯一的一个资源 URL就是资源地址、位置,互联网上每一个资源都有唯一的URL 格式: 协议://主机地址/路径 (eg:http:www.baidu.com/img/login.png) 协议:不同的协议,代表着不同的资源查找方式、资源传输方式 主机地址:存放资源的主机(服务器)的IP地址(域名) 路径:资源在主机(服务器)中的具体位置 URL中常见的协议 HTTP:超文本传输协议,访问的是远程网络资源,http:// file:访问的是本地计算机上的资源,file:// mailto:访问的是电子邮件地址,mailto: FTP:访问的是共享主机的文件资源,ftp:// 作用: HTTP协议规定了客户端和服务器之间的数据传输格式 让客户端和服务器能有效的进行数据沟通 特点: 简单快速:因为HTTP协议简单,所以HTTP服务器的程序规模小,因为通信速度快 灵活:HTTP允许传输各种各样的数据 HTTP基本通信过程 请求:客户端向服务器发起请求 响应:服务器返回客户端相应数据

GET和POST

别等时光非礼了梦想. 提交于 2019-12-02 18:34:32
目录 w3school给出的比较 从HTTP本身来讲GET与POST的区别 语法与语义 浏览器的GET和POST 接口中的GET和POST REST接口规范   关于安全性   关于编码   浏览器的POST需要发两个请求吗?   到底什么算请求体 关于URL的长度 w3school给出的比较 下面的表格比较了两种 HTTP 方法:GET 和 POST。 GET POST 后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用户数据会被重新提交)。 书签 可收藏为书签 不可收藏为书签 缓存 能被缓存 不能缓存 编码类型 application/x-www-form-urlencoded application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。 历史 参数保留在浏览器历史中。 参数不会保存在浏览器历史中。 对数据长度的限制 是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。 无限制。 对数据类型的限制 只允许 ASCII 字符。 没有限制。也允许二进制数据。 安全性 与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。在发送密码或其他敏感信息时绝不要使用 GET ! POST 比 GET 更安全

对于AlamoFire几点思考

只愿长相守 提交于 2019-12-01 04:42:18
本文由 CocoaChina --BYB_1132( 论坛ID )翻译 原文: Thoughts On AlamoFire--Swift’s AFNetworking Implementation HTTP协议就是现代开发的同义词,对于有经验的iOS开发者来说, 熟悉并尽可能使用这些流行的协议是日常工作的基础。 不出意料,iOS 应用在这一点上没有什么不同,成千上万的app和工程师都依靠广受欢迎的AFNetworking 库实现与服务器的交互,JSON解析, 以及提供占位符图片等多个功能。 简言之,做到这些并不容易。这篇文章中我们了要解的是Alamofire库。 基础 Alamofire的核心主要是试图简化iOS中HTTP网络连接, 它通过使用NSURLSession以及Foundation URL Loading System来创建一个Swift本地的网络访问接口,从而实现令人难以置信效率的任务。 Swift放弃了代理模式取而代之的使用了回调。对于我而言,我喜欢这个选择。然而基础承诺机制模式( promise-based patterns )也能起到一定作用, 它们也隐藏了一些坏代码味道,对于一些人有点太神奇了。 进一步看,它是异步实现的。你也许听说过,但是 在主线程上执行网络调用并不是一个好主意 ,不过Alamofire采用了许多创造性的最优方法。 例如

AFNetworking、MKNetworkKit和ASIHTTPRequest比较

落爺英雄遲暮 提交于 2019-12-01 04:38:12
之前一直在使用ASIHTTPRequest作为网络库,但是由于其停止更新,iOS7上可能出现更多的问题,于是决定更换网络库。 目前比较流行的网络库主要有AFNetworking和MKNetworkKit,经过一番google后,得出这三个库之间的比较如下: AFNetworking MKNetworkKit ASIHTTPRequest 更新情况 维护和使用者相对多 维护和使用者相对少 停止更新 支持iOS和OSX 是 是 是 ARC 是 是 否 断点续传 否,可通过 AFDownloadRequestOperation 是 是 同步异步请求 只支持异步 否 是 图片缓存到本地 否,通过SDURLCache或AFCache 否 否 图片缓存到内存 是 是 否 后台下载 是 是 是 下载进度 否,可通过AFDownloadRequestOperation 是 是 缓存离线请求 否, 通过SDURLCache或AFCache 是 否 JSON、XML 是 是 否 Etag 否 是 否 Cookies 否 否 是 https 是 是 是 根据以上 对比 ,AFNetworking虽然相比MKNetworkKit功能要弱一些,但是它的扩展性更强,而且维护者比较多,从长期来看要优于MKNetworkKit。 以上 对比 是根据本人测试及查资料所得,如有不正确的地方还希望大家指出,谢谢! 来源

IOS IPhone 开发需要的开源库[编辑中.. 不断更新]

佐手、 提交于 2019-11-29 05:24:04
前言 我是 java & php 程序员,遇到了坑爹的iPhone,被逼无奈在崩溃的边缘下学习object-c ,在学习中遇到了很多 奇葩,无知,龌蹉,呕吐的问题(弱弱的说 : 有的些问题到现在还不知道具体的原理)故此把开发中所有遇到的问题,和需要使用的开源库 一一记载下来,为那些苦B的要学习OBJECT-C的屌丝们加点料吧。本文纯粹记录性游记类文章,学术性观摩团请绕行,专家请绕行。在编写过程中避免不了出现问题或者遗漏问题,希望大家多多指点与板砖! 1:IOS &IPhone 网络异步加载 asi-http-request 【1-1 ASI HTTP 下载地址】 https://github.com/pokeb/asi-http-request 【1-2 注意事项】 下载asi-http-request-master后解压,把\Classes文件下所有文件,\External\Reachability 文件夹下所有文件添加到你的工程中。 在 Build Phases中添加相应的Link Binary With Libraries 1.MobileCoreServices.framework 2.SystemConfiguration.framework 3.CFNetwork.framework 4.Libz.dylib 由于ARC Restrictions导致的祖国山河一片红