簡體   English   中英

如何在不使用urlopen的情況下發出urllib2 POST請求?

[英]How to make a urllib2 POST request without using urlopen?

使用python2。我有一個BasicAuthHandler,已將其安裝為打開程序,用於向一個站點發出請求。

passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, base_url, username, password)
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
urllib2.install_opener(opener)

我現在想在沒有打開器的情況下向另一個站點發出請求。 由於我使用的是gooogle應用引擎,因此我無法使用請求庫,並且必須安裝另一個庫才能使其與GAE一起正常使用。 那么,有沒有一種方法可以在發出此請求之前先卸載打開器,然后再次重新安裝?

您可以構建和安裝其他打開器。 這是我的方法:

opener2 = urllib2.OpenerDirector()
default_classes = [urllib2.HTTPHandler, urllib2.HTTPDefaultErrorHandler,
                   MyFTPHandler, urllib2.HTTPErrorProcessor]
if hasattr(httplib, 'HTTPS'):
    default_classes.insert(0, urllib2.HTTPSHandler)
for klass in default_classes:
    opener2.add_handler(klass())

urllib2.install_opener(opener2)

使用並返回第一個打開程序( urllib2.install_opener(opener) )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM