记Request库的学习过程

2018-11-03  本文已影响0人  十八岁程序少年

首先request库的学习

request-get

request的get函数也可以传入头信息,如果正常get-url有错误,错误提示为403或500都可以加上头文件然后再进行get请求

get+头请求

request还有post请求

post请求

如何将对url的请求保存到文件/图片视频都可以

使用python向本地保存图片

视频也可以

使用python向本地保存视频

使用request进行post请求,参数data可以传递post的数据,request最新版本可以直接对json数据进行post请求

request 使用json

Request 使得上传多部分编码

通过文件传入请求头

也可以设定文件名,文件类型,请求头:

设定文件类型与请求头

//好吧,这是我唯一不懂的地方,官方给的文档是可以放松作为文件来接收的字符串,搞不懂为什么要以文件的形式发送字符串,具体有什么用处,不太了解。

发送作为文件来接收的字符串

响应状态码 status_code,Request库还附带了一个内置的状态吗查询对象:(我一次没有用过) requests.codes.ok,我一般都用 200来检查是否请求成功。也可以通过raise_for_status()来抛出异常,

raise_for_status()

使用这个的话如果请求状态码返回的不是200可以抛出异常,不用自己写一个try catch这样的表达式了,当然也可以写如果返回码不是200,提前中断程序的运行,好多种方法。

值得注意的是raise_for_status()这个函数只能是(4xx客户端错误,或者5xx服务器错误)才会中断。

如果请求码为200时,raise_for_status()返回值为none;

Cookie(敲黑板,这个很重要的,某个响应中包含一些cookie,你可以快速访问它们。

快速访问cookies

发送cookies到服务器,吐个槽(我发现,get函数参数是真的多,而且全,应有尽有。)

向服务器请求时传入cookies参数

Request库的重定向和请求历史也是很方便,重定向参数是allow_redirects(bool型)

history and redirect

超时<timeout>,timeout参数可以设置自己要的秒数.timeout仅对连接过程有效,与响应体的下载无关。timeout并不是整个下载响应的时间限制,而是如果服务器在timeout秒内没有response,将会引起一个异常《if no timeout is specified explicitly,requests do not time out,

timeout测试

错误与异常<常见的一些>

网络问题————ConnectionError 

HTTP—————HTTPError

请求超时————Timeout

...........

//request库的一些高级用法

Request 会话使用教程。

值得注意的是就算使用了会话,方法级别的参数也不会跨请求保持。下面的例子只会和第一个请求发送cookie,而非第二个。

session 使用进阶

请求与响应对象

任何时候进行了类似request.get()的调用,都只有两部分,第一部分是构建一个Request对象,该对象将发送到某个服务器请求或查询一些资源。其二,一旦requests得到一个从服务器返回的响应就会产生一个Response对象(其中包含服务器包含的所有信息,也包含曾经创建的requests对象。

可以通过下面这种方式查看请求时的头文件。

通过Request库获得自己请求的头文件

响应头链接字段

运行的话,会报一个KeyError的错,字典结构没有这个词。然后我还不信,循环打印了一下,仔细瞅了一下我擦,还真没有,估计是我请求的网址不对吧,过两天再过来瞅一下

还在连载。。。

上一篇下一篇

猜你喜欢

热点阅读