/* 时间:2018/08/23 功能:post请求 目录: 一: post请求 - 无参 1 无参 二: post请求 - url 1 url传参 - url 2 url传参 - params 三: post请求 - body 1 body传参 - json
2 body传参 - application/x-www-form-urlencoded(登录禅道)
四: 登录判断 - 正则匹配
1 成功登录
2 失败登录
*/
一: post请求
1 参数
1 : 访问网站: https://www.cnblogs.com/huafan。
2 : 浏览器访问没有问题。
1 : 先使用fiddler测试。
2 : 请求方式 - post; url - https://www.cnblogs.com/huafan。
3 : 点击"Execute"。
1 : 查看请求,返回数据没有问题。
1 : python代码请求。
# coding:utf-8 import requests import urllib3 urllib3.disable_warnings() # 忽略警告 url = "https://www.cnblogs.com/huafan" r = requests.post(url, verify = False) print(r.text)
2 : 查看返回结果,和Fiddler一样,也是没有问题。
二: post请求 - url
1 url传参 - url
1 : 访问网址:https://www.juhe.cn/docs/api/id/166 ,使用第三方提供的接口。
1 : 使用浏览器测试一下,url : http://japi.juhe.cn/qqevaluate/qq?key=appKey&qq=qq。
2 : 可以看到浏览器显示,服务端返回数据。
1 : 先使用fiddler测试。
2 : 请求方式 - post; url - http://japi.juhe.cn/qqevaluate/qq?key=appKey&qq=qq。
3 : 点击"Execute"。
1 : 查看请求,返回数据没有问题。
1 : python代码请求。
# coding:utf-8 import requests import urllib3 urllib3.disable_warnings() # 忽略警告 url = "http://japi.juhe.cn/qqevaluate/qq?key=8dbee1fcd8627fb6699bce7b986adc45&qq=1812436356" r = requests.post(url, verify = False) print(r.status_code) # 状态码 print(r.headers) # 头部 print(r.text) # 正文
2 : 查看返回结果,返回数据没有问题。
2 url传参 - params
1 : python代码请求。
# coding:utf-8 import requests import urllib3 urllib3.disable_warnings() # 忽略警告 url = "http://japi.juhe.cn/qqevaluate/qq" params = { "key" : "8dbee1fcd8627fb6699bce7b986adc45", "qq" : "1812436356" } r = requests.post(url, params = params, verify = False) print(r.status_code) # 状态码 print(r.headers) # 头部 print(r.text) # 正文
2 : 查看返回结果,返回数据没有问题。
三: post请求 - body
1 body传参 - json
(暂无)
2 body传参 - application/x-www-form-urlencoded(登录禅道)
1 : 登录禅道,输入用户名和密码。
2 : 勾选"保持登录",点击"登录"。
1 : 点击Raw,查看刚才请求。
1 : 点击"WebForms",查看请求参数。
2 : 查看登录成功后返回数据。
1 : python代码请求。
# coding:utf-8 import requests import urllib3 urllib3.disable_warnings() # 忽略警告 # 禅道登录 url = "http://127.0.0.1/zentao/user-login.html" body = { "account": "admin", "password": "e10adc3949ba59abbe56e057f20f883e", "keepLogin[]": "on", "referer": "/zentao/my.html" } r = requests.post(url,data = body) print(r.status_code) print(r.text)
2 : 查看返回结果,和Fiddler一样。
四: 登录判断 - 正则匹配
1 成功登录
1 : python代码请求
# coding:utf-8 import requests import re # 禅道登录 url = "http://127.0.0.1/zentao/user-login.htm" body = { "account": "admin", "password": "e10adc3949ba59abbe56e057f20f883e", "keepLogin[]": "on", "referer": "/zentao/my.html" } r = requests.post(url, data = body) print(r.status_code) print(r.content.decode("utf-8")) # 中文解码 try: # 正则提取 res = r.content.decode("utf-8") # 获取中文字符串 result = re.findall("alert\(\'(.+?)\'\)", res) # 正则匹配 print(result[0]) # 取list第0个 except: print("登录成功 ")
2 : 查看请求结果,数据正确。
2 失败登录
1 : 登录禅道,输入用户名和错误的密码。
2 : 勾选"保持登录",点击"登录",弹出错误提示信息。
1 : 查看fiddler请求,返回数据有错误提示信息。
1 : python代码请求
# coding:utf-8 import requests import re # 禅道登录 url = "http://127.0.0.1/zentao/user-login.htm" body = { "account": "admin", "password": "123456789", "keepLogin[]": "on", "referer": "/zentao/my.html" } r = requests.post(url, data = body) print(r.status_code) print(r.content.decode("utf-8")) # 中文解码 try: # 正则提取 res = r.content.decode("utf-8") # 获取中文字符串 result = re.findall("alert\(\'(.+?)\'\)", res) # 正则匹配 print(result[0]) # 取list第0个 except: print("登录成功 ")
2 : 查看请求结果,数据正确。