$ Django 調API的幾種方式
阿新 • • 發佈:2018-12-28
API呼叫方式
下面是python中會用到的庫。
urllib2
httplib2
pycurl
requests
urllib2
#request 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這種方式程式碼最簡潔,最清晰,建議採用。
#urllib2, urllib 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 handleropener = 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()
#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
#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()