中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python調用REST API接口的幾種方式

發布時間:2020-06-21 10:14:17 來源:網絡 閱讀:18259 作者:Mark_L_Zhang 欄目:編程語言

本文主要介紹python中調用REST API的幾種方式,下面是python中會用到的庫。

- urllib2

- httplib2

- pycurl

- requests?


  1. urllib2

    - Sample1

1
2
3
4
5
6
7
8
9
10
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()

??- Sample2

1
2
3
4
5
6
7
8
9
10
11
import?urllib2
url?=?'http://ems.vip.ebay.com/removeSIforcloud.cgi?ip='?+?ip
req?=?urllib2.Request(url)
req.add_header('IAF',abc.token_authiaas)
try:
????resp?=?urllib2.urlopen(req)
except?urllib2.HTTPError,?error:
????print?"Cannot?remove?service?instance!",?error
????sys.exit(1)
response?=?resp.read()
print?response

? - Sample3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import?urllib2,?urllib,?base64
url?=?"https://reparo.stratus.ebay.com/reparo/bootstrap/registerasset/"?+?rackid?+?"/"?+?asset
data?=?urllib.urlencode({
????????????????'reservedResource':'RR-Hadoop',
????????????????'resourceCapability':'Production',
????????????????'movetoironic':'False',
????????????????'output':'json'
????????})
print?"Bootstrap?Asset?jobs?starting?.............."
?
base64string?=?base64.encodestring('%s:%s'?%?(user,?passwd)).replace('\n',?'')
request?=?urllib2.Request(url,?data,?headers={"Authorization"?:?"Basic?%s"?%?base64string})
response?=?urllib2.urlopen(request).read()
response_json?=?json.loads(response)
response_status?=?response_json['status']
status_code?=?response_status['statusCode']
status?=?response_status['status']
message?=?response_status['message']???????????
print?status_code?,?status,?message


2.?httplib2

1
2
3
4
5
6
7
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

1
2
3
4
5
6
7
8
9
10
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

1
2
3
4
5
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這種方式代碼最簡潔,最清晰,建議采用。


轉自:?https://blog.51cto.com/haohaozhang/1668761


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

崇仁县| 嘉兴市| 新和县| 周宁县| 托里县| 榆社县| 山西省| 利津县| 凤台县| 米泉市| 周至县| 江油市| 漳浦县| 芷江| 雅安市| 临桂县| 石狮市| 临汾市| 清徐县| 当阳市| 尼木县| 新余市| 昭平县| 英超| 舟山市| 南康市| 阳江市| 山阳县| 镇沅| 固镇县| 六安市| 南召县| 滨州市| 慈利县| 青田县| 都昌县| 天长市| 交口县| 淳化县| 巴中市| 浦江县|