002 python接口 post请求

 

 

 

/*
时间: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 : 查看请求结果,数据正确。

 

 

 

 

posted @ 2018-08-23 07:46  火焰马  阅读(609)  评论(0编辑  收藏  举报