2017-06-17 60 views
1

讓我開始說我是極其 Python新手,但我熟悉其他編程語言。在深入研究這個項目之前,我需要問幾個問題。Python的URL請求

我需要能夠直接從Python獲得URL GET,PUT,POST和DELETE請求。

我將爲這些函數的特定用例編寫一個庫,我不希望用戶必須去安裝外部庫(如「請求」)。

什麼是最好的方式來做到這一點,urllib.request?

謝謝你教育我。

+0

首先爲已知的東西寫一個額外的模塊是不必要的。如果您不願意指導用戶單獨下載它們,則可以在腳本本身內處理該安裝。否則,urllib將幫助你開發自己的模塊。 – Arockia

+0

除了函數中的url請求之外,我們還在做其他事情,所以它不是沒有必要的。我不想寫一些依賴於外部庫的東西,所以我想我會用urllib2去。 –

+0

然後你可以去開發你自己的。事實是,將您的更改與標準庫合併會更容易。沒有其他關注:) – Arockia

回答

0

我需要能夠直接從Python創建URL GET,PUT,POST和DELETE請求。 ...什麼是最好的辦法,urllib2?

由於urllib.request.urlopen()是硬連接到GET或POST,則需要http.client.HTTPConnection代替:

import http.client 
import pprint 

conn = http.client.HTTPConnection('www.jython.org') 
c = conn.request('HEAD', '/index.html') 
r = conn.getresponse() 

pprint.pprint(r.getheaders()) 
print('Size of body:', len(r.read())) 

該技術可以讓你「更接近金屬」,並提供了更多的控制權,但它 失去一切舒適的urllib.request及其各種高級服務(如下面的重定向)。

+0

urllib2.Request.get_method呢? –

+0

@JoeBlow * urllib2.Request.get_method()*只返回* GET *或* POST *。沒有其他選擇。 –