本文主要介紹python中調用API的幾種方式,下面是python中會用到的庫。
1.urllib2
import
urllib2, urllib
github_url
=
'https://api.github.com/user/repos'
password_manager
=
urllib2.HTTPPasswordMgrWithDefaultRealm()
password_manager.add_password(
None
, github_url,
'user'
,
'***'
)
auth
=
urllib2.HTTPBasicAuthHandler(password_manager)
opener
=
urllib2.build_opener(auth)
urllib2.install_opener(opener)
request
=
urllib2.Request(github_url, urllib.urlencode({
'name'
:
'Test repo'
,
'description'
:
'Some test repository'
}))
handler
=
urllib2.urlopen(request)
print
handler.read()
2.
httplib2
import
urllib, httplib2
github_url
=
'
h
=
httplib2.Http(
".cache"
)
h.add_credentials(
"user"
,
"******"
, "
data
=
urllib.urlencode({
"name"
:
"test"
})
resp, content
=
h.request(github_url,
"POST"
, data)
print
content
3.
pycurl
import
pycurl, json
github_url
=
"
user_pwd
=
"user:*****"
data
=
json.dumps({
"name"
:
"test_repo"
,
"description"
:
"Some test repo"
})
c
=
pycurl.Curl()
c.setopt(pycurl.URL, github_url)
c.setopt(pycurl.USERPWD, user_pwd)
c.setopt(pycurl.POST,
1
)
c.setopt(pycurl.POSTFIELDS, data)
c.perform()
4.
requests
import
requests, json
github_url
=
"
data
=
json.dumps({
'name'
:
'test'
,
'description'
:
'some test repo'
})
r
=
requests.post(github_url, data, auth
=
(
'user'
,
'*****'
))
print
r.json
以上幾種方式均可以調用API來執行動做,但requests這種方式代碼最簡潔,最清晰,建議採用。