什么是 xml ?
xml 是一種和 html 非常類似的語言,采取一定的格式展示數據。比如:

這個例子非常形象的指明:
- 這是一個便條
- 便條是給你的
- 便條是我寫的
- 標題是:提醒
- 內容是:今晚八點,不見不散
xml 和 html 的區別
- xml 設計的初衷在于傳輸數據,重點在數據;
- html 設計的初衷在于展示數據,重點在展示;
- html 通過和 css 的組合能展現非常美觀的效果,xml 志不在此。
接口當中為什么會有 xml ?
xml 的作用和 json 實在是太像了。通過 json, 可以代替 xml 的作用:

以前,接口通常會采用 xml 來傳輸數據。而現在,大多數接口都是采用 json 進行數據傳遞, xml 已經被冷落了,主要的原因是:
- json 數據傳輸量較小,xml 常常要使用各種屬性,冗余信息較多;
- json 支持數字, 布爾, null, 數組,對象等通用格式,xml 都是文本;
- json 解析更方便
但是,還是有一些公司的接口是采用 xml, 比如大名鼎鼎的微信,很多接口還是采用 xml。原因是 xml 在一些特定領域還占有一些優勢:
- 可讀性稍微占優勢;
- 對于 UI 頁面,可以更方便的使用屬性這樣一種形態進行頁面數據的傳輸,比如Android/ target=_blank class=infotextkey>安卓應用。
- 歷史優勢。xml 相比 json 發展更早,還有很多有經驗的程序員偏愛 xml, JAVA程序員有喜歡 xml 的傾向(現在已經很少了)。微信的很多 api 還是用 xml,也許是出于這些原因。
xml 和 json 的區別,歸根結底在于他們表達數據的方式不同,xml 用的是樹形結構, json 對應的是 hash 映射。
使用工具測試 xml 數據接口
接口發送 xml 格式的數據和發送 json 幾乎一樣,只需要把格式改成 xml 就可以了。
采用 postman 接口測試工具 往接口https://httpbin.org/post 發送以下 xml 數據:

postman 數據填寫:

通過 fiddler 抓包可以查看到發送的數據:

通過 postman 查看返回結果:

通過上面的例子得出:
- xml 格式的發送只需要修改請求頭格式
- 請求頭格式為 Content-Type: Application/xml
使用 Python 編程語言測試 xml 數據接口
使用 python 語言的 requests 庫可以很方便的發送 xml 格式的數據,只需要把請求頭格式換成 application/xml 就可以了:

xml 數據存儲在文件當中
測試數據如果不是通過在代碼中直接傳遞,而是通過文件形式存儲,則使用 python 當中的 open 函數直接讀取。

相應代碼:

說明:本文為檸檬班雨澤老師原創,轉載需注明出處