本篇文章的測試GitHub接口部分結(jié)合上面的資料展開癌椿,在CentOs 5.7 64位的機子上演示华临。后面的例子由于筆者暫時找不到好的網(wǎng)站地址,只好自己搭建網(wǎng)站了。然后使用api post 去調(diào)用接口概而。后面部分主要根據(jù)筆者的日常使用經(jīng)驗诗宣。
2XX
curl -s -i https://api.github.com | grep status
-i 表示 輸出時包括protocol頭信息
-s 表示 靜默模式
grep status 用于查找文件里符合條件的字符串
這里是Linux的管道用法,可以用來過濾
我們也可以看得詳細(xì)一點
4XX
curl -i -u iZwz99inw692vbuwtngjf9Z -X POST https://api.github.com/gists
-u 指定用戶名
-X 制定請求方式
這里返回401代表當(dāng)前用戶沒有訪問權(quán)限~~~
404也很常見.
403:
這里給大家推薦一個免費軟件APIpost,這里筆者沒收它的廣告費哦龄毡,完全是覺得它好用吠卷。
然后訪問的是筆者的gitee私有倉庫,很明顯就是403錯誤了沦零。
對資源的訪問遭到gitee服務(wù)器的拒絕祭隔。
3XX
這個例子使用nodejs的一個框架Express 來搭建.
//nodejs代碼
var http = require('http');
var server = http.createServer(function (req, res) {
res.writeHead(301, {'Location': 'http://baidu.com/'});
console.log(res._header);
res.end();
});
server.listen(8080);
console.log("server start at http://127.0.0.1:8080");
//nodejs代碼
var http = require('http');
var server = http.createServer(function (req, res) {
res.writeHead(302, {'Location': 'http://baidu.com/'});
console.log(res._header);
res.end();
});
server.listen(8080);
304:告訴客戶端,所請求的內(nèi)容距離上次訪問并沒有變化. 客戶端可以直接從瀏覽器緩存里獲取該資源.
在第一次請求服務(wù)器的時候在獲取資源之后是會先把該資源緩存在本地的,同時服務(wù)器response返回了一個響應(yīng)頭ETag路操,ETag全稱Entity Tag疾渴,用來標(biāo)識一個資源。在具體的實現(xiàn)中屯仗,ETag可以是資源的hash值搞坝,也可以是一個內(nèi)部維護(hù)的版本號。
要想不是304魁袜,可以禁用瀏覽器緩存.
5XX
500的錯誤十分常見桩撮,比如程序員一不小心就寫就給用戶留下濃墨重彩的一筆—— "服務(wù)器內(nèi)部錯誤"!
這里我故意來一把運行時錯誤.
幾個小工具
-
ApiPost.剛剛試驗403的時候嘗試了,就不再介紹了峰弹。
-
JetBrains的Http client.
這個呢店量,不同的版本位置不一樣。
比如2020版的IDEA和Pycharm就在Tools -> HTTP Client -> Test RESTful web Service.其他的筆者沒嘗試鞠呈,不過位置差不多融师,找一下即可.
-
vscode 安裝一個插件REST Client.
關(guān)于REST Client插件的詳細(xì)用法,可以看它擴展的細(xì)節(jié)說明