python3 http.client 网络请求
一:get 请求
''' Created on 2014年4月21日 @author: dev.keke@gmail.com ''' import http.client #简单的GET请求 con = http.client.HTTPConnection('www.baidu.com') con.request("GET", "/index.html",'',{}) resu = con.getresponse() print(resu.status,resu.reason,resu.info()) #打印读取到的数据 #打印读取的数据 print (resu.read()) #测试一个无效的请求 inCon = http.client.HTTPConnection('www.baidu.com') inCon.request('GET', 'None.html') resu2 = inCon.getresponse() print(' ') print(resu2.status,resu2.msg)
二:POST 请求
import http.client,urllib.parse pararms = urllib.parse.urlencode({'@number': 12524, '@type': 'issue', '@action': 'show'}) headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"} conn = http.client.HTTPConnection("bugs.python.org") conn.request('POST', '', pararms, headers) response = conn.getresponse() print(response.status, response.reason) data = response.read() print(data) conn.close()
打印结果 :
302 Found b'Redirecting to <a href="http://bugs.python.org/issue12524">http://bugs.python.org/issue12524</a>'
三: head 请求
>>> import http.client >>> conn = http.client.HTTPConnection("www.python.org") >>> conn.request("HEAD","/index.html") >>> res = conn.getresponse() >>> print(res.status, res.reason) 200 OK >>> data = res.read() >>> print(len(data)) 0 >>> data == b'' True
四:put 请求
>>> # This creates an HTTP message >>> # with the content of BODY as the enclosed representation >>> # for the resource http://localhost:8080/file ... >>> import http.client >>> BODY = "***filecontents***" >>> conn = http.client.HTTPConnection("localhost", 8080) >>> conn.request("PUT", "/file", BODY) >>> response = conn.getresponse() >>> print(response.status, response.reason) 200, OK
参考:https://docs.python.org/3.4/library/http.client.html?highlight=http.client#module-http.client