因为生产系统环境限制,导致使用postman等接口测试工具,所以需要一个程序来后台测试。
GET请求:
python2.7: 1
2
3
4
5
6
7
8
9
10
11import urllib,urllib2
url='http://192.168.199.1:8000/mainsugar/loginGET/'
textmod ={'user':'admin','password':'admin'}
textmod = urllib.urlencode(textmod)
print(textmod)
#输出内容:password=admin&user=admin
req = urllib2.Request(url = '%s%s%s' % (url,'?',textmod))
res = urllib2.urlopen(req)
res = res.read()
print(res)
#输出内容:登录成功
python3.x:
1 | from urllib import parse,request |
POST请求:
python2.7: 1
2
3
4
5
6
7
8
9
10
11
12import json,urllib2
textmod={"jsonrpc": "2.0","method":"user.login","params":{"user":"admin","password":"zabbix"},"auth": None,"id":1}
textmod = json.dumps(textmod)
print(textmod)
#输出内容:{"params": {"password": "zabbix", "user": "admin"}, "jsonrpc": "2.0", "method": "user.login", "auth": null, "id": 1}
header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',"Content-Type": "application/json"}
url='http://192.168.199.10/api_jsonrpc.php'
req = urllib2.Request(url=url,data=textmod,headers=header_dict)
res = urllib2.urlopen(req)
res = res.read()
print(res)
#输出内容:{"jsonrpc":"2.0","result":"2c42e987811c90e0491f45904a67065d","id":1}
python3.x: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18from urllib import parse,request
import json
textmod={"jsonrpc": "2.0","method":"user.login","params":{"user":"admin","password":"zabbix"},"auth": None,"id":1}
#json串数据使用
textmod = json.dumps(textmod).encode(encoding='utf-8')
#普通数据使用
textmod = parse.urlencode(textmod).encode(encoding='utf-8')
print(textmod)
#输出内容:b'{"params": {"user": "admin", "password": "zabbix"}, "auth": null, "method": "user.login", "jsonrpc": "2.0", "id": 1}'
header_dict = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko',"Content-Type": "application/json"}
url='http://192.168.199.10/api_jsonrpc.php'
req = request.Request(url=url,data=textmod,headers=header_dict)
res = request.urlopen(req)
res = res.read()
print(res)
#输出内容:b'{"jsonrpc":"2.0","result":"37d991fd583e91a0cfae6142d8d59d7e","id":1}'
print(res.decode(encoding='utf-8'))
#输出内容:{"jsonrpc":"2.0","result":"37d991fd583e91a0cfae6142d8d59d7e","id":1}
cookie的使用(python3.5):
1 | from urllib import request,parse |
python3 抓取网页资源的 N 种方法
最简单
1 | import urllib.request |
使用 Request
1 | import urllib.request |
发送数据
1 | #! /usr/bin/env python3 |
发送数据和header
1 | #! /usr/bin/env python3 |
http 错误
1 | #! /usr/bin/env python3 |
异常处理1
1 | #! /usr/bin/env python3 |
异常处理2
1 | #! /usr/bin/env python3 |
HTTP 认证
1 | #! /usr/bin/env python3 |
使用代理
1 | #! /usr/bin/env python3 |
超时
1 | #! /usr/bin/env python3 |