天天看点

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

网络请求的基本知识 我们网络请求用的是http请求

http请求格式:请求的方法,请求头,请求正文

http请求的request fields:请求的头部,以及被请求头部的一些设置

http请求的response fields:请求的回复头,通过回复头可以了解服务器给我们的一些状态信息。

获取这个源码后,解压后直接拖拽进新建的single view工程:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

然后在viewcontroller.m文件中import "afnetworking.h",接着在network.h找到get请求:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

按cmd结合鼠标点击"get"就可以进入networking.m的get的具体实现:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

然后把这个get方法中实现的部分 复制 ,因为我们需要这些代码里的一些参数。复制到viewcontroller.h的viewdidload方法里:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

然后删除不需要的代码:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

添加网址和修改了一点点代码:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记
网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记
网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

再修改了一点代码:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记
网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记
网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记
网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

运行之后就能打印出网页数据。

经过一个简单的实例后,讲讲http的请求格式:

// = http请求格式 =

// ------------------------------

// * 请求方法 (get、post等) *

// * 请求头 (httpheaderfields) *

// * 请求正文 (数据) *

首先需要知道的是请求方法,有很多请求方法,其中最常用的是get、post方法,上面的实例使用的是get请求,如果改为post请求:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

其它和get请求一样:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

然后运行就同样可以有数据结果。同时说明,那个网站即支持get请求,也支持post请求。

好,上面讲的就是请求的方法,下面讲讲请求头是什么?

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

我们发送请求的时候,服务器怎么知道请求的设备是苹果手机还是安卓手机,其实在发送给服务器的包头信息,就自动的把我门的设备信息写进去了。请看上面图里的"user-agent"的信息,它就是我的模拟器设备的信息。这个信息也是可以自己修改的。这个修改到后面会讲到。

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

对照:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

accept-language用的是en英语,我们代码的包头请求信息还包括 zh中文 。

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

这个关系到用户的信息。

上面就是请求头部的信息,下面讲讲服务器返回给我们的状态信息:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

在那个维基百科的网页里也是有相关的response fields列表的:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

这些很多信息可以参考维基百科的这个网址进行参考,从而可以了解所请求的服务器的头部的信息。而且其中已经显示了这个网址是可以进行get和post请求:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

通过这个请求头部信息,可以帮助我们 理解 为什么 我们请求不成功。

最后讲讲请求的正文:

我们怎么知道请求的正文是什么呢?请求的正文就是我们需要携带的数据:

只这里我们只需要看这行代码:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

注意 ? 前面的就是网址,而 ? 后面的是请求携带的参数,这些参数就是正文。然后我们把这部分正文 写进 代码 中,然后删掉urlstr中的这部分正文:

网络请求的基本知识《极客学院 --AFNetworking 2.x 网络解析详解--1》学习笔记

最后显示的是 cod=404表示出错了,然后我们把它改为get请求,然后就成功了。

说明这个网址虽然 包头 信息告诉我们可以用get和post请求,但是通过post给我们返回的是404的错误信息。

以上上面讲到的三点基础知识点 需要熟悉。