python发送HTTP请求

来源:互联网 发布:双十一数据调查报告 编辑:程序博客网 时间:2024/05/20 06:55

本代码包含 Python 使用 GET/HEAD/POST 方法进行 HTTP 请求


1. [代码]GET 方法    

?
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> importhttplib 
>>> conn = httplib.HTTPConnection("www.python.org"
>>> conn.request("GET","/index.html"
>>> r1 =conn.getresponse() 
>>> printr1.status, r1.reason 
200 OK 
>>> data1 = r1.read() 
>>> conn.request("GET","/parrot.spam"
>>> r2 =conn.getresponse() 
>>> printr2.status, r2.reason 
404 Not Found 
>>> data2 = r2.read() 
>>> conn.close()

2. [代码]HEAD 方法    

?
1
2
3
4
5
6
7
8
9
10
11
>>> importhttplib 
>>> conn = httplib.HTTPConnection("www.python.org"
>>> conn.request("HEAD","/index.html"
>>> res =conn.getresponse() 
>>> printres.status, res.reason 
200 OK 
>>> data = res.read() 
>>> printlen(data) 
0
>>> data == '' 
True

3. [代码]POST 方法    跳至 [1] [2] [3] [全屏预览]

?
1
2
3
4
5
6
7
8
9
10
11
>>> importhttplib, urllib 
>>> params = urllib.urlencode({'spam':1,'eggs':2,'bacon':0}) 
>>> headers = {"Content-type":"application/x-www-form-urlencoded"
...            "Accept": "text/plain"
>>> conn = httplib.HTTPConnection("musi-cal.mojam.com:80"
>>> conn.request("POST","/cgi-bin/query", params, headers) 
>>> response = conn.getresponse() 
>>> printresponse.status, response.reason 
200 OK 
>>> data = response.read() 
>>> conn.close()


以下是Python3中使用urllib2的方法,更方便

1. [代码]GET 方法    

?
1
2
3
4
5
6
7
8
9
10
11
12
13
>>> importhttplib 
>>> conn = httplib.HTTPConnection("www.python.org"
>>> conn.request("GET","/index.html"
>>> r1 =conn.getresponse() 
>>> printr1.status, r1.reason 
200 OK 
>>> data1 = r1.read() 
>>> conn.request("GET","/parrot.spam"
>>> r2 =conn.getresponse() 
>>> printr2.status, r2.reason 
404 Not Found 
>>> data2 = r2.read() 
>>> conn.close()

2. [代码]HEAD 方法    

?
1
2
3
4
5
6
7
8
9
10
11
>>> importhttplib 
>>> conn = httplib.HTTPConnection("www.python.org"
>>> conn.request("HEAD","/index.html"
>>> res =conn.getresponse() 
>>> printres.status, res.reason 
200 OK 
>>> data = res.read() 
>>> printlen(data) 
0
>>> data == '' 
True

3. [代码]POST 方法    跳至 [1] [2] [3] [全屏预览]

?
1
2
3
4
5
6
7
8
9
10
11
>>> importhttplib, urllib 
>>> params = urllib.urlencode({'spam':1,'eggs':2,'bacon':0}) 
>>> headers = {"Content-type":"application/x-www-form-urlencoded"
...            "Accept": "text/plain"
>>> conn = httplib.HTTPConnection("musi-cal.mojam.com:80"
>>> conn.request("POST","/cgi-bin/query", params, headers) 
>>> response = conn.getresponse() 
>>> printresponse.status, response.reason 
200 OK 
>>> data = response.read() 
>>> conn.close()

0 0