学习此文的技巧来自于老男孩openstack林海峰老师的教程《第25讲 openstack的api》:https://www.bilibili.com/video/BV1LJ411Y7og?p=25和https://www.qstack.com.cn/archives/168.html
其中我学到的技巧包括:
(1)openstack官方文档的api使用
(2)不借助官方文档,直接用wireshark抓包工具,抓出所需要的构造url的方法,直接使用。
(1)-H指定head,也就是指定http头哪些需要的参数。(譬如我们抓的追踪流-http流 头部的X-Auth-Token:和Content-Type:都可以用-H指定)
curl -H "X-Auth-Token:gAAAAABaMImzumUV648tH56PGK38DlE9Jz0G2qg0pv5M7XlrZu1XoXMacvOsJXHH9NgvovrfgeJR-DlFPRrE0wpqdHW9VkSLWwuGZtaKkcX7zRlehrHttLPTigz9UPdQi4GrZ7u2APIG6kIsyKLiVLkUMMDen02FWKQGKZT8eOG2gx-OKDAV1cE" -H "Content-Type: application/json" http://10.0.0.11:9292/v2/images
curl -H "X-Auth-Token:$token" -H "Content-Type: application/json" http://10.0.0.11:9292/v2/images
(2)-X指定POST GET DELETE等方法,当然默认不写-X就是指定GET,如果是POST DELETE等方法则必须显示用-X POST或者——X DELETE等指定
(3)-d后面可以指定带的数据。一般都是带json串。譬如
curl -i -X POST -H "Content-type: application/json" -d '这引号里面填写json串(抓的追踪流-http流里面有json串的数据,贴过来稍微修改下即可)' http://10.0.0.11:5000/v3/auth/tokens
curl -i -X POST -H "Content-type: application/json" \ { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "domain": { "name": "default" }, "name": "admin", "password": "ADMIN_PASS" } } }, "scope": { "project": { "domain": { "name": "default" }, "name": "admin" } } } }-d '' http://10.0.0.11:5000/v3/auth/tokens
PS即你必须你得到了一个下面wireshark的流,你必须会
你得到上图1/2/3/4/5/6/7这段包,你就要学会用curl构造对应的请求
1说明是post
2就是url的后半部,即/v2.1/c26a0…………17c/servers
3证明url的前面写的是http,即http
4说明url的的中间部分主机和端口,即controller:8774
5说明-H "Content-Type: application/json"
6说明-H "X-Auth-Token:$gAAAA…………"
7说明带的json数据
curl -X 1 -H 5 -H 6 -d '7' 3://4/2
即
curl -X 1 -H 5 -H 6 -d '7' http://controller:8774/v2.1/c26a0…………17c/servers
PS2:后期weibo、weixin、douyin的api编程都可以这样尝试抓包试试哈!举一反三!!!