Trước khi bắt đầu bài Lab ta cần lưu ý :
- Bài lab được thực hiên trên HĐH Windows
- Tại sao phải lấy ticket ?. Để chương trình có thể giao tiếp với Controller thì chúng ta phải thực hiện xác thực, và khi đã xác thực thành công Controller sẽ gửi về cho bạn một dãy Ticket. Với Ticket này chúng ta mới có thể thực hiện các thao tác như Get, Post,... giữa chương trình và Controller. Ticket chỉ có hiệu lực trong một phiên làm việc.
Các bước viết chương trình :
Bước 1 : Cài đặt thư viện
Ở bài này chúng ta cần phải gửi các loại yêu cầu http đến server và nhận response từ server nên ta cần cài đặt thư viện requests để thực hiện các yêu cầu đó.
- Bấm tổ hợp phím windows +R để mở Command Line (cmd)
- Trong màn hình cmd gõ :
Bước 2: Viết hàm get để lấy ticket
Tạo file getTicket.py trong thư mục C:\python để viết chương trình.
Nội dung code :
Thư viện requests giúp gửi các yêu cầu loại http đến server và nhận response
Thư viện json cho phép mã hóa, giải mã các đối tượng
Code:
import requests import json
Code:
APICEM_IP = '10.215.26.10' VERSION = 'v1' USERNAME = 'admin' PASSWORD = 'VnPro@123'
Code:
requests.packages.urllib3.disable_warnings()
Code:
def get_ticket(ip= APICEM_IP,ver= VERSION,uname= USERNAME,pword= PASSWORD,api=’’,params=’’):
Code:
r_json = { "username":uname, "password":pword }
Code:
headers = {"Content-Type" : "application/json"}
Code:
post_url = "https://"+APICEM_IP+"/api/"+VERSION+"/ticket"
Code:
try: do A except: do B
Code:
r=requests.post(post_url,data = json.dumps(r_json), headers = headers,verify=False) r.raise_for_status() # Lấy mã trạng thái, 200 là thành công, 404 là not found token = r.json()["response"]["serviceTicket"] return { "token" : token }
- post là tạo dữ liệu .
- post_url là địa chỉ ta muốn gửi đến,
- json.dumps dùng để mã hóa username và password.
- verify=False để không xác thực SSL
- Sau khi nhận được respone, ta tạo biến token để lấy ticket từ r và return để trả về giá trị ticket
Code:
print("Status: %s" %r.status_code) print("Response: %s" %r.text)
Code:
ticket = get_ticket() print(ticket)
Để chạy đoạn code vừa lập trình ta vào cmd nhập lệnh
Code:
Cd C://python Get-ticket.py
Network Controller đã trả về ticket đã thành công.
Sau khi đã lấy được ticket từ Controller, chúng ta có thể sử dụng ticket để thực hiện các thao tác get, post,... đến Controller. Ở bài Lab sau, mình sẽ hướng dẫn các bạn viết tiếp chương trình để có thể lấy được thông tin thiết bị, danh sách các thiết bị có trong mạng ,... Mong các bạn đón xem vào bài viết sau.
Thank you.
Full code :
Code:
import requests import json APICEM_IP = '10.215.26.10' VERSION = 'v1' USERNAME = 'admin' PASSWORD = 'VnPro@123' requests.packages.urllib3.disable_warnings() def get_ticket(ip=APICEM_IP,ver=VERSION,uname=USERNAME,pword=PASSWORD): r_json = { "username": uname, "password": pword } post_url = "https://"+ip+"/api/"+ver+"/ticket" headers = {"Content-Type" : "application/json"} try: r=requests.post(post_url,data = json.dumps(r_json),headers = headers,verify=False) r.raise_for_status() token = r.json()["response"]["serviceTicket"] return { "token" : token } except: print("Status: %s" %r.status_code) print("Response: %s" %r.text) ticket=get_ticket() print(ticket)
Nguồn : VNPRO