日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ERP接口介绍

發布時間:2023/12/31 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ERP接口介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ERP接口介紹

一、ERP接口概況

我們增加了ERP接口,接口的作用有:

  • 簡化天思ERP與外圍系統的集成
  • 將ERP、TCODE 、TBOSS協調成一個整體
  • 與ERP一起維護

ERP接口方便與外圍程序集成,是現在很通用的一種模式,那么接口是什么意思,我們怎么使用它?

我們經常說的接口,其實就是一個API。

而API,我們可能經常聽到,但是不是很明白,先看它的百科介紹:

API,英文全稱Application Programming Interface,翻譯為“應用程序接口”,是一些預先定義的函數,目的是提供應用程序與開發人員基于某軟件或硬件得以訪問的一組例程,而又無需訪問源碼,或理解內部工作機制的細節。

知乎上關于API的解釋

那么實際工作中怎么使用呢,舉我們現在軟件的例子:

我們的ERP是一個很完善很完整的系統軟件,隨著手機的便攜性越來越高,價位越來越低,客戶越來越希望我們ERP中倉庫管理部分能在手機上直接使用,這樣方便倉庫人員及時處理出入庫,但是我們的ERP不支持在手機上使用。怎么辦?

我們開發了一套手機APP,也就是我們的TCODE倉庫管理系統,也就是我們常說的TCODE。

那TCODE和ERP的數據怎么對接呢?總不能ERP做ERP的,TCODE做TCODE的吧?

這里就用到了API接口,通過ERP的API接口,把ERP系統和TCODE系統對接起來,讓數據是相互通的。

再舉一個實際的例子,以采購入庫單存盤為例:

ERP寫好了【登錄接口】和【單據保存接口】,其中單據保存接口支持采購入庫單,TCODE開發了一張采購入庫單,在TCODE中先登錄,然后錄好采購入庫單,保存這張單據的時候,直接調用我們ERP的【單據保存接口】,通過這個接口生成一張采購入庫單,生成的這張單在ERP中就能看到,并不需要TCODE重新寫一段采購入庫存盤的代碼。

同樣,以采購入庫新增接口為例,我們了解一下實際的接口使用,接口是一段定義好的函數,我們提供好了接口的種類和接口的模式,如果有其他系統需要調用我們的接口,直接根據我們的格式傳好參數后調用就行。

現在很多客戶有一些特殊的需求,比如需要用其他來源數據做入庫,客戶寫了一個小程序,這個小程序有自己的數據庫用來存放數據,他希望存盤能同時生成一張我們系統的采購入庫單,那這時候就可以用到我們的【登錄接口】和【單據保存接口】。

二、ERP接口實例介紹

首先,我們需要使用【登錄接口】來模擬用戶登錄,得到返回的LoginId,這個LoginId可以理解成此次登錄的身份標識,其他接口調用的時候必須用到這個身份標識。比如我們需要用到【單據保存接口】,那么就必須先取得這個LoginId。

2.1 【登錄接口】的介紹

| 基本信息

信息值備注
接口名稱用戶登錄根據語言別、授權憑證等實現用戶登錄
請求狀態POST請求狀態一般有四種:使用時可簡單理解為
1、POST /url 創建
2、DELETE /url/xxx 刪除
3、PUT /url/xxx 更新
4、GET /url/xxx 查看
接口路徑http://localhost:23798/api/User/login向服務器地址發送POST請求

| 請求參數

Headers
參數名稱參數值是否必須示例備注
Languageid0客戶端語言別,0:簡體 1:繁體 2:英文
AuthorizationBasic REVNT19BRE1JTjoxMjM=授權憑證,由”登錄代號_ 操作員代號:密碼“組成字符串的Base64加密值,比如 Basic DEMO_ADMIN:123。
ClientTypeTestMgr用戶自定義的客戶端識別號,比如客戶是WMS系統,可以自定義ClientType=“WMS”
Content-Typeapplication/json用于指定數據的傳輸類型,其他接用調用時必須用到,現在默認使用“application/json”格式,以后會支持其他格式

| 返回數據

名稱類型是否必須默認值備注其他信息
LoginIdstring返回的LoginId
CompNostring帳套代號
UserNostring操作員代號
LoginIdExpirynumber登錄超時時間(秒)
ClientTypestring客戶端自定義識別號
LanguageIdnumber客戶端語言別

| 調用范例

返回的Json:

{"LoginId": "e835943e-55c2-4bf0-832d-6f4166592941","CompNo": "DEMO","UserNo": "ADMIN","LoginIdExpiry": 604800,"ClientType": "WMS","LanguageId": 0 }

| 備注

以上介紹說的我們向服務器發送POST請求,請求參數是Languageid、Languageid、ClientType、ClientType,參數的值根據實際的情況錄入,運行后返回LoginId、CompNo等字段的值,通過得出的值,我們可以進行后續新增采購入庫的操作。

需要注意:

先判斷返回的HttpStatusCode是否等于200,如果是則表示調用成功,否則返回錯誤信息

登錄接口不需要頻繁調用,只有當沒有獲得LoginId或登錄已超時后才需要再次調用

登錄接口返回的LoginIdExpiry以秒為單位,調用方在調用前先記錄本地時間,接口返回后將記錄的本地時間加上LoginIdExpiry的值,即是下次需要再次調用登錄接口的時機

除了登錄接口,其它接口調用必須在Headers里面傳入LoginId

所有接口都以JSON格式返回

2.2 【單據保存接口】的介紹

| 基本信息

信息值備注
接口名稱單據保存、修改根據單據ID、是否為確認單來新增或修改單據
請求狀態POST請求狀態一般有四種:使用時可簡單理解為
1、POST /url 創建
2、DELETE /url/xxx 刪除
3、PUT /url/xxx 更新
4、GET /url/xxx 查看
接口路徑http://localhost:23798/api/Bill/SaveBill向服務器地址發送POST請求

| 請求參數

Headers
參數名稱參數值是否必須示例備注
Content-Typeapplication/json用于指定數據的傳輸類型
LoginIde835943e-55c2-4bf0-832d-6f4166592941用戶登錄的LoginId
Query
參數名稱是否必須示例備注
CallIDCallID=PC調用的單據識別號,比如"SA":表示銷售出庫單 “PC”:表示采購入庫單
isConfirmisConfirm=F是否確認單
Body

現在使用的是數據庫表字段傳參來實現,沒用統一的字段,所以不用表格列示,后續會修改為統一字段傳參

{"HeadData": { //表頭數據"CUS_NO": "CS001", //廠商代號"DEP": "0000" //部門代號},"BodyData1": [ //表身數據{"PRD_NO": "1001", //貨品代號"QTY": 12.5, //數量}{"PRD_NO": "1002", //第二個貨品代號"QTY": 1, //數量}] }

| 返回數據

名稱類型是否必須示例備注其他信息
CallIDstring非必須PC調用的單據識別號
CallOKstring非必須T執行是否成功, 是:“T” 否:“F”
Dataobject非必須“TF_TABNAME”: “TF_PSS”,
“BIL_ITM”: “0”,
“MF_TABNAME”: “MF_PSS”,
“BIL_NO”: “PC0C100005”,
“BIL_ID”: “PC”
單據信息,JOSN格式
ErrorStrstring非必須錯誤信息

| 調用范例

**Body:**使用的是數據庫表字段名作為參數名傳參,根據實際需求傳需要的字段即可

{"HeadData": { //表頭數據"CUS_NO": "CS001", //廠商代號"DEP": "0000" //部門代號},"BodyData1": [ //表身數據{"PRD_NO": "1001", //貨品代號"QTY": 12.5, //數量}{"PRD_NO": "1002", //第二個貨品代號"QTY": 1, //數量}] }

返回的Json:

{"CallID":"PC", // 調用的單據識別號"CallOK":"T", // 執行是否成功, 是:"T" 否:"F""Data":{ // 單據信息,JOSN格式"TF_TABNAME": "TF_PSS","BIL_ITM": "0","MF_TABNAME": "MF_PSS","BIL_NO": "PC0C100005","BIL_ID": "PC"},"ErrorStr":"" // 錯誤信息 }

2.3 代碼示例

以C# 語言為例,舉例說明實際開發過程中調用【登錄接口】、【單據保存接口】的代碼

//登錄按鈕點擊事件(登錄接口) private void btnGetLoginId_Click(object sender, EventArgs e){//Basic 64加密 帳套代號_操作員代號:密碼string authorization = "DEMO_ADMIN:";byte[] b = System.Text.Encoding.Default.GetBytes(authorization);authorization = "Basic " + Convert.ToBase64String(b);//接口路徑HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:23798/api/User/login");//Headersrequest.Headers["Authorization"] = authorization;//Basic REVNT19BRE1JTjo=request.Headers["Languageid"] = "0"; //語言別request.Headers["ClientType"] = "WMS"; //用戶自定義的調用識別request.Method = "POST"; //請求類型request.ContentType = "application/json"; //傳輸類型//Bodystring bodyString = ""; //bodyJsonbyte[] buffer = Encoding.UTF8.GetBytes(bodyString); request.ContentLength = buffer.Length;try{request.GetRequestStream().Write(buffer, 0, buffer.Length);//執行調用using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()){using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)){MessageBox.Show(reader.ReadToEnd()); //返回數據}}}catch (Exception ex){MessageBox.Show(ex.Message); //錯誤信息}}//保存按鈕點擊事件(保存接口) private void btnSaveBill_Click(object sender, EventArgs e){//接口路徑 傳入調用的單據識別號、是否確認單標識HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:23798/api/Bill/SaveBill?CallID=PC&isConfirm=F");//Headersrequest.Headers["LoginId"] = "e835943e-55c2-4bf0-832d-6f4166592941";//用戶登錄的LoginIdrequest.Headers["ClientType"] = "WMS"; //調用方標識request.Method = "POST"; //請求類型request.ContentType = "application/json"; //傳輸類型//Bodystring bodyString = "{ \"HeadData\": { \"CUS_NO\": \"CS01\", \"DEP\": \"0001\" }, \"BodyData1\": [ { \"PRD_NO\": \"1001\", \"QTY\": \"12.5\"" }, { \"PRD_NO\": \"1002\", \"QTY\": \"1\"} ]}" ; //bodyJsonbyte[] buffer = Encoding.UTF8.GetBytes(bodyString);request.ContentLength = buffer.Length;try{request.GetRequestStream().Write(buffer, 0, buffer.Length);//執行調用using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()){using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8)){MessageBox.Show(reader.ReadToEnd()); //返回數據}}}catch (Exception ex){MessageBox.Show(ex.Message); //錯誤信息}}

程序執行后,就可以生成一張采購入庫單,這一段代碼里描述了我們ERP接口調用的傳入參數和返回數據。這只是一段簡單的有其他參數需求時,根據實際需求寫入調用參數即可。

三、JSON介紹

現階段我們所有接口都以JSON格式返回,那么JSON是什么,怎么使用它?

JSON 英文全稱 JavaScript Object Notation , 翻譯為“ JavaScript 對象表示法”,是一種與開發語言無關的、輕量級的數據存儲格式。是用來存儲和交換文本信息的語法。一種數據格式的標準規范,起初來源于JavaScript這門語言,后來隨著使用的廣泛,幾乎每門開發語言都有處理JSON的API。

優點:易于人的閱讀和編寫,易于程序解析與生產。

數據結構表示

數據結構Object(無序的「鍵-值」集合)Array(有序的值集合)…
結構樣式{key:value,key:value…}[value,value…]
舉例{“小明”: “50分”, “小紅”: “99分”}[1,“hi”]

JSON數據示例:首先一個花括號{},整個代表一個對象,同時里面是一種Key-Value「鍵-值」的存儲形式,它還有不同的數據類型來區分。

//這個 “APP“是包含 2個“對象”的數組,而每個對象下包含多個鍵值對和一個數組,數組下又包含多個鍵值對 {"APP":[{"name":"天貓","role":"買買買","carts": [{ "name":"洗發水" , "price":"50" },{ "name":"沐浴露" , "price":"60" }]},{"name":"京東","role":"買買買","carts": [{ "name":"鍵盤" , "price":"300" },{ "name":"鼠標" , "price":"300" }]}] }

四、接口測試

我們了解了接口、JSON格式,接下來說一下怎么測試、使用接口。

假設有一個需求,需要開發出查詢采購訂單的功能,開發寫了一個【單據查詢接口】,這個接口支持查詢采購訂單,完成后,我們需要測試這個是否可以正確執行查詢采購訂單的操作,以及返回的數據是否正確,開發可以在開發環境下查看,那測試、實施人員日常測試、調用調試的時候可以怎么辦呢?

4.1 調用準備

  • 運行ServrConfig啟動ERP服務
  • 云主機上防火墻開通23788 、23798端口
  • ERP序列號需要注冊接口系統或條碼系統
  • 如果需要使用單據打印接口,請配置服務的模擬帳戶
  • 可訪問: http://localhost:23798/api/help 獲取幫助

啟動服務
開通端口

注冊條碼系統并重新注冊后注冊信息里可以看到 使用單據打印接口時需設置服務控制臺

4.2【單據查詢接口】的介紹

做好了調用準備后,我們還需要知道【登錄接口】和【單據查詢接口】的說明介紹,以及我們需要確認【單據查詢接口】是否支持采購訂單,這里因為是開發完成采購訂單查詢接口,需要測試這個接口,所以我們只需要知道【單據查詢接口】文檔即可。

【登錄接口】在上面已經有介紹了,【單據查詢接口】可以找研發提供,或者在http://localhost:23798/api/help 幫助頁下找到【查詢接口】的幫助,點擊去查看這個接口的請求類型、請求地址、請求參數等。

查詢接口點進去只能看到四個參數,暫時這里還不完善。(后續會統一調整完善接口文檔,幫助文檔地址也可能會調整

因幫助頁文檔不完善,另外找了研發提供了【采購訂單查詢接口】的說明,整理如下:(后續完善后文檔同下面列示的樣式相同,且不需要在找研發提供)

| 基本信息

信息值備注
接口名稱單據查詢根據單據ID、單據號碼、單據項次查詢單據信息
請求狀態GET請求狀態一般有四種:使用時可簡單理解為
1、POST /url 創建
2、DELETE /url/xxx 刪除
3、PUT /url/xxx 更新
4、GET /url/xxx 查看
接口路徑http://localhost:23798/api/Bill/QueryBill向服務器地址發送GET請求

| 請求參數

Headers
參數名稱參數值是否必須示例備注
Content-Typeapplication/json用于指定數據的傳輸類型
LoginId679e0b11-8483-428c-82bd-83383b57e9f5用戶登錄的LoginId
Query
參數名稱是否必須示例備注
CallIDCallID=PO調用的單據識別號,比如"SA":表示銷售出庫單 “PC”:表示采購入庫單
Bil_IdBil_Id=PO查詢單據ID
Bil_NoBil_No=PO0C110001查詢單據號碼
Bil_ItmBil_Itm=0查詢單據項次

| 返回數據

4.3 Postman測試工具

做好前面的準備工作后,就可以開始測試了,用什么測試工具,怎么操作?

這里我們介紹一種測試工具,叫PostMan ,其他的工具同理。

下面詳細介紹一下PostMan 的用法。

PostMan 是一款網頁調試和接口測試的工具,能夠發送任何類型的 HTTP 請求,支持 GET/PUT/POST/DELETE 等方法,通過直接填寫 URL,headers,body 等,就可以發送一個請求,非常簡單易用,是接口測試必備利器。這里我們用它來做接口測試。

下載PostMan ,下載地址可以找我們提供,打開PostMan 程序就可以直接使用了,跳過登錄賬戶步驟、跳過更新提示,當彈出創建提示框時,可以選擇創建”Collection“,彈出新建接口窗口,在這個窗口上錄入一個名稱,點擊“Create“創建即可。

?

若不小心關掉了這一步,在主界面上點擊”New“按鈕,或者點擊新增的小圖標也可以打開創建窗口。

創建好接口后,就可以在右邊進行請求了,此時我們需要創建兩個請求,一個是進行”用戶登錄“請求、一個是進行”采購訂單查詢“請求,先創建一個登錄請求,通過登錄請求的得出LoginId,然后傳入LoginId到采購訂單查詢請求中,進行查詢請求。

先建立一個請求,選擇請求類型為“POST”,輸入請求地址“http://localhost:23798/api/User/login”,點擊到“Authorization”授權頁簽,在“TYPE”下選擇“Basic Auth",然后在Username下輸入”DEMO_ADMIN"(這里輸入個人的測試賬套、用戶名,用"_"符號鏈接,注意拼接方式),在Password下輸入密碼,點擊“Preview Request”后自動在“Headers"請求頭頁簽下生一個key為”Authorization“,VALUE為”Basic REVNT19BRE1JTjo=“的請求頭參數。

繼續在”Headers“請求頭頁簽下,輸入其他的請求頭參數,比如必須輸入的”Languageid‘參數,不必須輸入的“ClientType”、“Content-Type”頁可以填入也可以不填入。手動輸入的參數可以上移、下移、取消勾選、刪除等。自動生成的參數不可以移動、修改、刪除。

錄入好參數后,點擊“Send”按鈕,界面下面“Body”頁簽下顯示返回的數據。在返回數據下找到“LoginId”,LoginId后面的那一串字符就是我們后面需要用的參數。

若想以后繼續使用這個請求,可以點擊“Save”進行保存,保存時可以給這個請求錄入名稱,選擇保存到哪一個接口,點擊“save to"按鈕保存即可。

保存好”用戶登錄"請求后,在點擊“加號”小圖標按鈕,在新建一個請求,選擇請求類型為“GET”,輸入請求地址“http://localhost:23798/api/Bill/QueryBill“,在”Params“參數頁簽下,輸入參數CallID、Bil_Id、Bil_No、Bil_Itm,以及這些參數對應的值。輸入的參數會體現在地址后面,所以輸入請求地址的時候,可以直接錄入”http://localhost:23798/api/Bill/QueryBill?CallID=PO&Bil_Id=PO&Bil_No=PO0C110001&Bil_Itm=0“,輸入這樣的地址,”Params“參數頁簽下會自動顯示這四個參數。所以輸入地址時如果知道參數可以直接把參數帶上。

填好地址和參數后,在點擊”Headers“請求頭頁簽,輸入請求頭參數Content-Type、LoginId以及對應的值。”Content-Type“參數的值現在一般是”application/json“,”LoginId“的值是前面”用戶登錄“請求后得出的LoginId值。錄好后,點擊”Send“按鈕,界面下面“Body”頁簽下顯示返回的數據。返回數據是JSON數據,能看到有”HEADDATA“、”BODYDATA1“等字段時,表示獲取到表頭、表身信息,此時就表示接口調用正確。也可以看”Status“狀態,”Status“狀態為200時,也表示這個接口請求是通過的。但是”Status“只能表示接口正常,并不能看出結果是否正常。

上面我們返回的數據特別多,判斷返回數據正確是去判斷能看到有”HEADDATA“、”BODYDATA1“等字段,這樣不便于我們很直觀的確認返回是否正確,我們可以在”Tests“測驗頁簽下寫入判斷,判斷返回數據是否有”HEADDATA“字段,有時提示”PASS“通過,沒用時提示”FAIL“失敗。

點擊到”Tests“測驗頁簽,在右方紅色字體處下拉點擊“Response body:contains string",點擊后,在左邊框內自動生成一串代碼:代碼如下:

(不同的版本或設置顯示的代碼不同,但是意思都是一樣的,修改時對應著改即可)

pm.test("Body matches string", function () {pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });

修改測試命名以及檢測測HEADDATA字段是否存在,修改的代碼如下:

pm.test("檢測是否返回HEADDATA字段", function () {pm.expect(pm.response.text()).to.include("HEADDATA"); });

寫好判斷后,點擊”Send“按鈕運行接口,查看下方的”Test Results“頁簽后面的文字是什么顏色,綠色表示存在,紅色表示不存在。點擊到”Test Results“頁簽后,可以看到下面有是否通過的標志,當返回數據有”HEADDATA“字段時提示”PASS“通過,沒用時提示”FAIL“失敗。

此時,我們得到了采購訂單查詢接口返回的數據,但是這個數據的模式我們看起來不直觀,這里我們需要用JSON解析工具,將這一段JSON數據解析成比較直觀的JSON格式。

這里使用的是JSON解析,有很多JSON解析的工具,也有很多在線解析的網址,這里不做深入介紹,我們隨便搜索了一個JSON在線解析網址:https://www.sojson.com/,打開后,選擇”JSON解析“頁簽,將我們通過執行【單據查詢接口】得到的返回數據填入到代碼框,點擊”檢驗/格式化“按鈕,彈出”當前內容是一個字符串,是否需要轉成JSON對象“,點擊”確認“,就可以得出比較直觀的JSON格式的數據了。

轉換后的數據,如下圖,這個格式可以清晰的看到表頭信息,表身信息,以及每個信息的值。這個方式比較清晰直觀,便于我們判斷數據正確性。

同用戶登錄請求一樣,若想以后繼續使用這個請求,可以點擊“Save”進行保存,保存時可以給這個請求錄入名稱,選擇保存到哪一個接口,點擊“save to"按鈕保存即可。

保存請求后,在Postman左邊接口點擊會展開這個接口下保存的請求,點擊請求后顯示時也顯示的時名稱。

Postman還有很多其他用法,這里就不一一介紹了。網上也有很多教程,有興趣的可以去查看以下。

接口測試工具還有很多,比如Restlet Client、Mockbin等工具,這些公允運行道理都是差不多,根據實際需求選擇一個使用即可。

4.4 現有接口的類型

列示幾個常用類型,還有很多接口,這里沒用一一列示。

接口名稱接口類型請求類型接口路徑
用戶登錄登錄POSThttp://localhost:23798/api/User/login
賬套驗證賬套驗證POSThttp://localhost:23798/api/WMS/GetToken
單據保存、修改單據操作POSThttp://localhost:23798/api/Bill/SaveBill
單據打印單據操作POSThttp://localhost:23798/api/Bill/PrintBillReport
單據審核單據操作POSThttp://localhost:23798/api/audit/executeaudit
單據查詢單據操作GEThttp://localhost:23798/api/Bill/QueryBill
單據刪除單據操作POSThttp://localhost:23798/api/Bill/DeleteBill
查詢視窗查詢GEThttp://localhost:23798/api/Bill/QueryWin_GetData
貨品履歷查詢查詢GEThttp://localhost:23798/api/MrpCZ/GetMrpCZData
貨品庫存查詢查詢GEThttp://localhost:23798/api/TbrECC/GetPrdStock_One
詳細資料查詢查詢GEThttp://localhost:23798/api/Bill/QueryDataDetail

4.5 現有接口的單據

這些單據都有新增、刪除、修改、查詢的接口

單據識別號CallID單據名稱是否存在確認單單據識別號CallID單據名稱是否存在確認單
PO采購訂單IJ庫存調整單
SO銷售訂單T6采購入庫送檢
PC采購入庫單TY采購入庫驗收
PB采購入庫退回單TP生產繳庫驗收
SB銷售出庫退回單W1庫存入倉單
TW托外加工單WO庫存出倉單
WT批次托外單MM成品繳庫單
TC托工退回單M2生產退料
M4托工領料M3生產補料
M5托工退料YB采購驗收退回
M6托工補料YM制成品驗收退回
M7非生產領料YK托工驗收退回
M8非生產退料MBBOM組合生產單
IC庫存調撥單MDBOM切割分裝單
MC原料調拔單MX入不良品倉
PI盤點單CK備貨單
PJ盤點單(批號)PN訂單變更

五、擴展知識

5.1 HTTP 協議

上面所提到的請求類型,Headers(請求頭)、query(參數)、Body(請求體),這些都是HTTP 協議下的東西。

HTTP協議英文全稱HyperText Transfer Protocol翻譯為超文本傳輸協議。HTTP協議是一個簡單的請求-響應協議,是基于TCP/IP協議之上的應用層協議。HTTP協議定義Web客戶端如何從Web服務器請求Web頁面,以及服務器如何把Web頁面傳送給客戶端。HTTP協議遵循請求(Request)/響應(Response)模型。客戶端向服務器發送一個請求報文,請求報文包含請求的方法、URL、協議版本、請求頭部和請求數據。服務器以一個狀態行作為響應,響應的內容包括協議的版本、成功或者錯誤代碼、服務器信息、響應頭部和響應數據

HTTP請求—響應模式

請求報文構成

  • 請求行(Request line):包括請求方法、URL、協議/版本
  • 請求頭(Request Header)
  • 請求正文(Request Body)
  • POST /test.html HTTP/1.1 //請求行 包括請求方法、URL、協議/版本//請求頭 Header HOST:www.test.com?indexid=2 //query query一般指URL中的參數 Content-Length: 16 Content-Type: text/html//空白行,代表請求頭結束//請求正文 body,請求體中的數據 Username=admin&password=admin

    響應報文構成

  • 響應行(Response line)
  • 響應頭(Response Header)
  • 響應正文(Response Body)
  • HTTP/1.1 200 OK //響應行 包括協議版本 狀態碼 狀態碼原因短語//響應頭 Header Date: Sun, 15 Nov 2015 11:02:04 GMT Content-Length: 360 Content-Type: text/html//空白行,代表響應頭結束//響應正文 body,響應體中的數據 <html><body>Hello World</body> </html>

    5.2 HTTPS 協議

    一般http中存在如下問題:

    • 請求信息明文傳輸,容易被竊聽截取
    • 數據的完整性未校驗,容易被篡改
    • 沒有驗證對方身份,存在冒充危險

    為了解決上述HTTP存在的問題,就用到了HTTPS。

    HTTPS 協議英文全稱是 HyperText Transfer Protocol over Secure Socket Layer,翻譯為超文本傳輸安全協議。一般理解為在HTTP的基礎上加入了SSL/TLS,通過 SSL證書來驗證服務器的身份,并為瀏覽器和服務器之間的通信進行加密。

    SSL(Secure Socket Layer,安全套接字層):SSL 協議位于 TCP/IP 協議與各種應用層協議之間,為數據通訊提供安全支持。

    TLS(Transport Layer Security,傳輸層安全):其前身是 SSL,目前使用最廣泛的是TLS 1.1、TLS 1.2。

    HTTPS數據傳輸模式

    HTTPS的缺點:

    • HTTPS協議多次握手,導致頁面的加載時間延長近50%;
    • HTTPS連接緩存不如HTTP高效,會增加數據開銷和功耗;
    • 申請SSL證書需要錢,功能越強大的證書費用越高。
    • SSL涉及到的安全算法會消耗 CPU 資源,對服務器資源消耗較大。

    總結HTTPS和HTTP的區別:

    • HTTPS是HTTP協議的安全版本,HTTP協議的數據傳輸是明文的,是不安全的,HTTPS使用了SSL/TLS協議進行了加密處理。
    • http和https使用連接方式不同,默認端口也不一樣,http是80,https是443。

    對于http和https這里都只是做了淺顯的介紹,有需要的可以自己去學習。

    參考網址:

    https://zhuanlan.zhihu.com/p/72616216

    https://www.cnblogs.com/an-wen/p/11180076.html

    5.3 Base64加密工具

    在我們使用Postman工具測試的時候,是通過自帶的Base64加密來對賬套用戶密碼來加密,如果工具不帶,可以直接下載加密工具或者找在線的加密網址來進行加密。

    下面介紹一個在線加密的方式,打開站長工具在線加密網址:http://tool.chinaz.com/Tools/Base64.aspx?jdfwkey=np1b4(還有很多其他在線加密網址,這里只是隨便選了一個),將“賬套代號_用戶代號:密碼”這一串字符錄入到左邊,點擊“Base64加密”按鈕,右邊就會顯示加密后的內容,把”Base64“字符串與得出的字符串用空格組合,得到的就是Authorization的參數值了。

    例如賬套代號是DEMO,用戶代號是ADMIN,密碼為123,加密后得到的字符串為“REVNT19BRE1JTjoxMjM=”,與”Base64“字符串用空格組裝后,得到的字符串為“Base REVNT19BRE1JTjoxMjM=”,這個就是Authorization的參數值。

    在線加密工具的用法

    總結

    以上是生活随笔為你收集整理的ERP接口介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。