我需要使用POST,GET和其他方法並指定標題和超時來發出HTTP和HTTPS請求。製作HTTP [S]請求的首選方式
在互聯網上有很多這樣的例子,而且都是不同的:
import urllib.parse
import urllib.request
url = 'http://www.someserver.com/cgi-bin/register.cgi'
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
values = {'name' : 'Michael Foord',
'location' : 'Northampton',
'language' : 'Python' }
headers = { 'User-Agent' : user_agent }
data = urllib.parse.urlencode(values)
req = urllib.request.Request(url, data, headers)
response = urllib.request.urlopen(req)
the_page = response.read()
或
fetcher = urllib2.build_opener()
fetcher.addheaders.append(('Cookie', 'aaaa=%s' % aaaa))
res = fetcher.open(settings.ABC_URL)
或
req = urllib2.Request(url=url)
req.add_header('X-Real-IP', request.META['REMOTE_ADDR'])
req.add_header('Cookie', request.META['HTTP_COOKIE'])
req.add_header('User-Agent', request.META['HTTP_USER_AGENT'])
resp = urllib2.urlopen(req).read()
或
handler = urllib.urlopen('http://...')
response = handler.read()
我想在引擎蓋下的一些這些方法使用相同的機制。
還有其他使用httplib
,的例子。我讀urllib2是首選的lib使用。
哪一個是首選方法?他們每個人有哪些優點和缺點?
恐怕我只限於標準庫... – warvariuc
但是您肯定有權訪問文件系統,您可以在其中創建文件夾和文件?使用Pythons導入機制,您不需要通過easy_install或pip來安裝軟件包(儘管更好,尤其是在virtualenv中),您可以下載請求並將tarball中的文件夾「請求」放入工作目錄。導入將工作並且使用保持不變,除非您的Python解釋器在另一個目錄中啓動,那麼您需要修改PYTHONPATH或sys.path。如果這不起作用,請解釋您爲什麼(以及如何)僅限於標準庫。 – Fabian
我的意思是我不會在我的項目中做出這樣的決定,我擔心我將無法證明其他第三方模塊的使用合理 – warvariuc