Hauptsächlich verwendete Postman-Funktionen
Datenverschlüsselung und -entschlüsselung
Verschiedene Parametereinstellungen
Die tatsächlich gesendeten Daten:
Pro-Request-SkriptUm das Skript abzuarbeiten, schauen Sie sich einfach den Code an. Einige häufig verwendete Kapselungsklassen von Skripten werden von Postman gekapselt, wie zum Beispiel:
[Neben dem Code-Schreibfeld gibt es eine von Postman bereitgestellte allgemeine Operationscode-Generierung, die sehr nützlich ist] Spezifischer Code: //Umgebungsvariablenparameter für andere Anfragen festlegen pm.environment.set("lkm-sys-id",pm.request.headers.get("lkm-sys-id")); pm.environment.set("lkm-app-id",pm.request.headers.get("lkm-app-id")); pm.environment.set("lkm-organ-id",pm.request.headers.get("lkm-organ-id")); pm.environment.set("lkm-app-ver",pm.request.headers.get("lkm-app-ver")); // JSON-Parameter für Datensignatur const paramsString = request.url.split('?')[1]; const eachParamArray = paramsString.split('&'); lass Parameter = {}; eachParamArray.fürEach((param) => { const key = param.split('=')[0]; konstanter Wert = param.split('=')[1]; Object.assign(params, {[Schlüssel]: Wert}); }); konsole.log(Parameter); //Datenverarbeitung var requestParams = params; Konsole.log(Anforderungsparameter); // Durch die Schnittstelle definierte Datensignaturverarbeitung var timestamp = Math.round(new Date()); pm.environment.set("Zeitstempel",Zeitstempel); var shuijishu = "XO337hNxWyNsOlDw"; pm.environment.set("shuijishu",shuijishu); // Datensignatur, vereinbart durch die Systemschnittstelle var lkmSign = pm.request.headers.get("lkm-sys-id") + pm.request.headers.get("lkm-app-id") + "1122334455667788" + Zeitstempel + shuijishu + "" ; pm.environment.set("lkmSign",CryptoJS.MD5(lkmSign).toString().toUpperCase()); // =================== Die Verarbeitung der Datensignatur endet====================================== // ======================= Verschlüsselungs- und Entschlüsselungsdaten========================================== /// AES-Datenverarbeitung var aesData = dealWithAesData(requestParams); pm.environment.set("data", aesData); // Dies sind die Daten, die im Screenshot oben gesendet werden müssen./// ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ Häufig verwendete AES-Verschlüsselungs- und Entschlüsselungsmethoden↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ /// // aesData-Datenverarbeitung (Inhaltswörterbuch) Funktion dealWithAesData(Inhalt) { console.log('aesData-Klartext: ' + JSON.stringify(Inhalt)); const key = CryptoJS.enc.Utf8.parse("****************"); const iv = CryptoJS.enc.Utf8.parse("0000000000000000"); const verschlüsselt = CryptoJS.AES.encrypt(JSON.stringify(Inhalt), Schlüssel, { iv: iv, Modus: CryptoJS.mode.CBC, Polsterung: CryptoJS.pad.Pkcs7 }); //CBC returniere encrypted.toString(); } Antwortverarbeitungsskript [Tests]
Spezifischer Code: // Datenverarbeitung zurückgeben var jsonData = JSON.parse(responseBody); var responseData = JSON.parse(decryptResponseData(jsonData.data)); // Datenentschlüsselung let success = responseData['success']; var responseResult = responseData["Daten"]; //Datentoken-Datensatz, der von nachfolgenden Schnittstellen verwendet wird try { let token = Antwortresult["Token"]; pm.environment.set("Token", "Träger "+Token); konsole.log("token: " + token); } fangen (Fehler) { Tests['Erwarte, dass die Antwortdaten ein gültiges Token sind'] = false; Tests [`Antwortdaten: ${responseResult}`] = true; Konsole.Fehler(Fehler); } //Datenprotokoll drucken console.log("jsonData: Das folgende Objekt sind die Antwortdaten") Konsole.log(jsonData); console.log("responseData: Das folgende Objekt ist die erste Ebene der analysierten Daten") console.log(Antwortdaten); console.log("responseResult: Das folgende Objekt ist die zweite Ebene der analysierten Daten") console.log(Antwortergebnis); //Einstellungen der Umgebungsvariablen, die nach der Anmeldung von anderen Schnittstellen verwendet werden. console.log(AntwortResult.AgentId); pm.environment.set("agentId",responseResult.agentId); pm.environment.set("agentCode",responseResult.agentCode); pm.environment.set("agentName",responseResult.agentName); // pm.environment.set("token",responseResult.token); // Assertion festlegen Postman stellt eine gute allgemeine Assertion-Generierung bereit, Sie können Tests ["Business return code=200, success!"] = responseData.code === 200; ausprobieren. /// Entschlüsseln Sie die zurückgegebenen Daten function decryptResponseData(content) { const key = CryptoJS.enc.Utf8.parse("*****************"); const iv = CryptoJS.enc.Utf8.parse("0000000000000000"); const decrypt = CryptoJS.AES.decrypt(Inhalt, Schlüssel, { iv: iv, Modus: CryptoJS.mode.CBC, Auffüllung: CryptoJS.pad.Pkcs7 }); const decryptedStr = decrypt.toString(CryptoJS.enc.Utf8); returniere entschlüsseltenStr.toString(); } Das Ergebnis sieht aus wieDie Anforderung zur Simulation der verschlüsselten Schnittstelle sieht ungefähr so aus. Was andere Vorgänge betrifft, müssen Sie diese später lernen. Weitere Informationen zu Anforderungen für die Postman-Login-APP-Schnittstelle finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erläuterung zur Konfiguration des Beispielcodes für den Nginx-Webserver
Inhaltsverzeichnis Einführung: Installation von E...
In diesem Artikel werden hauptsächlich zwei Arten...
Die Layui-Tabelle enthält mehrere Datenzeilen. Üb...
Wenn ich heute nginx auf dem Cloud-Server install...
Methode 1: Verwenden Sie Tabellenattribute: Heade...
Ein einfacher Linux-Ratespiel-Quellcode Spielrege...
Inhaltsverzeichnis Array-Deduplizierung 1 Doppels...
Die von mir verwendete Datenbank ist MySQL Datenb...
Heute habe ich ein Problem in HTML gefunden. Es s...
Wenn Sie „display:flex, justify-content: space-be...
Bereiten Sie die Datenbank (MySQL) vor. Wenn Sie ...
In diesem Artikelbeispiel wird der spezifische Co...
Jeder qualifizierte Linux-Betriebs- und Wartungsm...
Inhaltsverzeichnis Vorwort 1. Allgemeine Fehlerbe...
Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...