ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python发送get,post请求

2022-07-27 22:02:07  阅读:197  来源: 互联网

标签:请求 get python 响应 json 格式 requests data post


  • 1、Requests基本介绍

  • 2、请求与响应的组成

    • 客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成。
    • 服务器接收并处理客户端发过来的请求后会返回一个HTTP的响应消息,HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文
  • 3、Requests发送请求

  • 使用 Requests 发送网络请求非常简单。如果我们要发起一个GET/POST请求,直接调用requests库里的GET/POST方法即可

  • GET请求

    • 方法一,参数放在URL中,直接传(不推荐)
import requests
url = "http://japi.juhe.cn/qqevaluate/qqkey=8dbee1fcd8627fb6699bce7b986adc45&qq=283340479"
r = requests.get(url)
print(r.text)
  • 方法二,params参数分开(推荐)
import requests
url = “http://japi.juhe.cn/qqevaluate/qq”
par = {"key":"8dbee1fcd8627fb6699bce7b986adc45","qq":"28XXXXX"}
r = requests.get(url, params=par)
print(r.text)  # 打印返回结果 文本
  • POST请求
    • 传统表单类post请求
    • JSON类型的post请求
      • 注:data参数支持字典格式也支持字符串格式,如果是字典格式,requests方法会将其按照默认表单urlencoded格式转换为字符串,如果是字符串则不转化
      • 如果data以字符串格式传输需要遵循以下几点:
        • 1) 必须是严格的JSON格式字符串,里面必须用双引号,k-v之间必须有逗号,布尔值必须是小写的true/false等等
        • 2)不能有中文,直接传字符串不会自动编码
        • 3)一般来说,建议将data声明为字典格式(方便数据添加修改),然后再用json.dumps()方法把data转换为合法的JSON字符串格式
      • data和json傻傻分不清
方法一:抓包看头部Content-Type参数:
-- application/json   --------------------这种就是传json参数
---application/x-www-form-urlencode -------这种就是传data参数
方法二:直接看参数长相
----{“name1”:”value1”, “name2”,”value2”}  ---这种传json
-- name1=value1&name2=value2
这种传data参数
  • 4、自定义请求头
    • 请求头,一般是传送服务器需要的一些附加信息,其中比较重要的就是User-Agent,Referer,Cookie等,常用的请求说明如下
Accept: 请求报头域,用于指定客户端可接受哪些类型的信息
Accept-Language: 指定客户端可接受的语言类型
Accept-Encoding: 指定客户端可接受的编码
Host:用于指定资源主机的IP和端口号,其内容为请求URL的原始服务器或网关的位置
Cookie:网站为了辨别用户进行会话跟踪而存储在用户本地的数据,它的主要功能是维持当前访问会话。
Referer: 用来标识这个请求是从哪个页面发过来的,服务器可以拿到这一信息并做相应的处理,如做资源统计防盗链接处理等。
User-Agent: 可以是服务器识别客户端使用的操作系统及版本,浏览器及版本信息等。所以在做爬虫时要加上此信息,可以伪装浏览器;不加的话很容易被识别为爬虫。
Conten-Type:互联网媒体类型,用来表示具体请求中媒体类型信息;如text/html代表HTML格式,image/gif代表GIF图片,application/json代表JSON类型
  • 5、Response返回内容
r.status_code     # 响应状态码
r.content           # 字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩
r.headers          # 以字典对象存储服务器响应头,但是这个字典比较特殊,字典键不区分大小写,若键不存在则返回None
r.json()             # Requests中内置的JSON解码器 ,json转成python的字典了
r.url                  # 获取url
r.encoding         # 编码格式-- r.cookies           # 获取返回的cookie
 r.text               # 字符串方式的响应体,会自动根据响应头部的字符编码进行解码r.raise_for_status()  # 失败请求(非200响应)抛出异常
r.ok                 # 返回True / False  状态码在200-400之间 返回True, 状态码在400-600之间返回 False
r.history          # 有重定向请求的时候,可以查看重定向记录
 r.apparent_encoding   # 分析响应编码

标签:请求,get,python,响应,json,格式,requests,data,post
来源: https://www.cnblogs.com/xwltest/p/16526663.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有