import urllib.request as ur import http.client as hc import httplib2 import urllib.parse as up def http1(): print('==========http1================================') url='http://www.njzz.gov.cn/Pad/msglist.aspx' data = ur.urlopen(url).read() print(data) def http2(): print('===========http2===============================') url='http://www.12306.cn/mormhweb/' hc.HTTPConnection.debuglevel=1 print('==========request==============================') response=ur.urlopen(url) ''' it will print action when sending request ''' print('============response==========================') print(response.headers.as_string()) def httplibtwo1(): print('===================httplib2========================') url='http://www.12306.cn/mormhweb/' httplib2.debuglevel=1 h = httplib2.Http('.cache') h.add_credentials('henry860916','595099760') print('=================request=========================') response, content=h.request(url,'GET',headers={'cache-control':'no-cache'}) print('\n=================response=======================') print(response.items()) print(response.status) print(response.fromcache) data={'age':'30','name':'jasca'} data2=up.urlencode(data) print(data2) ''' 1. httplib2 is most powerful 2. set headers= when request 3. 2nd parameter in request api: default method is GET, we can set DELETE/PUT/POST in request api 4. add_credentials, set username and password 5. urlencode, to encode data before sending ''' if __name__ == '__main__': http1() http2() httplibtwo1()