本文主要介绍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)
# create an authentication handler
opener
=
urllib2.build_opener(auth)
# create an opener with the authentication handler
urllib2.install_opener(opener)
# install the opener...
request
=
urllib2.Request(github_url, urllib.urlencode({
'name'
:
'Test repo'
,
'description'
:
'Some test repository'
}))
# Manual encoding required
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这种方式代码最简洁,最清晰,建议采用。