1. cgi编程
(1) 我首先在服务器上写了一个cgi脚本,用于本次的HTTP请求的测试
(2) 脚本放在/var/www/cgi-bin
目录下,文件名叫test.py
代码如下:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import cgi
def main():
print("Content-type:text/html")
print
print("<html>")
print("<body>")
form = cgi.FieldStorage() #获取表单
site_serviceCode = form.getvalue('serviceCode')
if site_serviceCode != '':
print("<h1>Hello, %s</h1> "% (site_serviceCode))
else:
print("<h1>Sorry! Please enter first name.</h1>")
print("</body>")
print("</html>")
main()
从脚本看出,我们需要在浏览器进行HTTP请求时,需要传入serviceCode这个参数
2. get方式
from urllib import request
req = request.Request('http://47.101.45.2/cgi-bin/test.py?serviceCode=aaa')
with request.urlopen(req) as f:
print(f.read().decode('utf-8'))
结果:
3. post方式
from urllib import request, parse
login_data = parse.urlencode([('serviceCode', 'aaa')]) #转化为bytes
req = request.Request('http://47.101.45.2/cgi-bin/test.py') #Request对象
req.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.75 Safari/537.36')
#返回HTTPResponse对象
with request.urlopen(req, data=login_data.encode('utf-8'), timeout=30) as f:
print(f.read().decode('utf-8'))
结果: