zoukankan      html  css  js  c++  java
  • get和post请求

    一、get请求

    1.导入requests后,用get方法就能直接访问url地址,如:http://www.cnblogs.com/yoyoketang/,

    2.这里的r也就是response,请求后的返回值,可以调用response里的status_code方法查看状态码

    3.状态码200只能说明这个接口访问的服务器地址是对的,并不能说明功能OK,一般要查看响应的内容,r.text是返回文本信息

    二、post请求

    1.发一个带参数的get请求,如在博客园搜索:yoyoketang,url地址为:http://zzk.cnblogs.com/s/blogpost?Keywords=yoyoketang

    2.请求参数:Keywords=yoyoketang,可以以字典的形式传参:{"Keywords": "yoyoketang"}

    3.多个参数格式:{"key1": "value1", "key2": "value2", "key3": "value3"}

    三、content和text的区别

    1.百度首页如果用r.text会发现获取到的内容有乱码,因为百度首页响应内容是gzip压缩的(非text文本)

    2.如果是在fiddler工具乱码,是可以点击后解码的,在代码里面可以用r.content这个方法,content会自动解码 gzip 和deflate压缩

    四、response的返回内容还有其它更多信息

    -- r.status_code     #响应状态码
    -- r.content           #字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
    -- r.headers          #以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
    -- r.json()             #Requests中内置的JSON解码器
    -- r.url                  # 获取url
    -- r.encoding         # 编码格式
    -- r.cookies           # 获取cookie
    -- r.raw                #返回原始响应体
    -- r.text               #字符串方式的响应体,会自动根据响应头部的字符编码进行解码
    -- r.raise_for_status() #失败请求(非200响应)抛出异常

    五、get与post的区别

    1、get参数通过url传递,post放在request body中

    2、get请求在url中传递的参数是有长度限制的,而post没有

    3、get比post更不安全,因为参数直接暴露在url中,所以不能用来传递敏感重要信息。

    4、get请求只能进行url编码,而post支持多种编码方式(第一种:application/x-www-form-urlencoded,第二种:multipart/form-data,第三种:application/json,第四种:text/xml)

    5、get请求参数会被完整保留在浏览历史记录里,而post中的参数不会被保留。

    6、GET产生一个TCP数据包;POST产生两个TCP数据包。

    长的说:

    对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);

    而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

    (据研究,在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。)

  • 相关阅读:
    在线教育项目-day02【讲师分页功能和多条件组合查询功能】
    在线教育项目-day02【统一结果返回】
    Go语言数组和切片的原理
    Go语言单元测试与基准测试
    PHPWord导出word文档
    Go语言反射reflect
    漫画:什么是HTTPS?
    什么是shell和终端?
    Go接口interface
    Go变量逃逸分析
  • 原文地址:https://www.cnblogs.com/guo2733/p/10536609.html
Copyright © 2011-2022 走看看