Technologieaustausch

Automatisierung (zweite Ebene)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Technologie-Stack, der für die Java-Schnittstellenautomatisierung verwendet wird

Zusammenfassung des Technologie-Stacks:
①Java-Grundlagen (Kapselung, Reflexion, Generika, JDBC)
②Analyse der Konfigurationsdatei (Eigenschaften)
③httpclient (http-Anfrage senden)
④Fastjson- und jsonpath-Prozessdaten
⑤Wichtige Punkte des automatisierten Test-Frameworks testng
⑥Allure-Testbericht

Die erste Kategorie: http-Anforderungsbezogen (fastjson, jsonpath, httpclient)

Vorbereiten

Erstellen Sie ein Maven-Projekt

①Erstellen Sie zuerst das Maven-Projekt, newPROJECT–Maven–groupid----finish

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

②Überprüfen Sie die Maven-Konfiguration erneut

Datei – Einstellungen – Maven
Fügen Sie hier eine Bildbeschreibung ein

Fastjson und jsonpath werden beide zur Datenverarbeitung verwendet.
Der Schwerpunkt des Testautomatisierungsframeworks.
Allure-Testbericht

1. fastjson (Anwendungsszenario: JSON-Strings und String-Arrays von Eingabeparametern analysieren)

fastjson verarbeitet JSON-Strings und JSON-Arrays
Analysieren Sie JSON-String-Eingabeparameter und bereiten Sie sie auf nachfolgende Anforderungen vor

①Abhängigkeit

<!-https://mvnrepository.com/artifact/com.alibaba/fastjson -->
com.alibaba
fastison
1.2.75

②Abhängigkeiten hinzufügen und Abhängigkeiten werden automatisch generiert

Fügen Sie hier eine Bildbeschreibung ein
Nach dem Herunterladen können Sie die automatisch generierten Abhängigkeitspakete sehen.

1.1. Beispiel (JSON-String-Eingabeparameter analysieren, JSON-String-Array-Eingabeparameter)

1.1.1. JSON-String-Eingabeparameter analysieren

Für die Anmeldung sind beispielsweise ein Benutzername und ein Passwort erforderlich.
{“Benutzername”:“qzcsbj”, “Passwort”:“123456”}

Datenquelle des Automatisierungsframeworks, Eingabeparameter sind alle JSON-Strings, FastJSON muss verwendet werden

Schritt 1: Erstellen Sie einen Paketnamen, einen Klassennamen und eine Hauptmethode

Fügen Sie hier eine Bildbeschreibung ein

Schritt 2: Definieren Sie eine Zeichenfolgenvariable. Hier ist die JSON-Zeichenfolge, die analysiert werden muss
Schritt 3: Um den JSON-String zu verarbeiten, analysieren Sie ihn zunächst in ein jsonObject-Objekt und fügen Sie ihn dann in die Map ein
1)Erstellen Sie zunächst eine HashMap, Schlüssel und Wert sind beide String

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

2) Hier wird die Zeichenfolge JSONObjetct.parseObject analysiert und der Rückgabewert ist vom Typ JSONObject.

Class.Method, diese Methode ist statisch

3) Um Schlüssel abzurufen, verwenden Sie direkt die Methode jsonObjetc.keySet, dh rufen Sie die Set-Sammlung ab

Jeder Schlüssel in der Sammlung ist String

4) Durchlaufen Sie erneut, erhalten Sie den Wert über den durchlaufenen Schlüssel und fügen Sie dann den Schlüssel und den Wert in die Karte ein

Fügen Sie hier eine Bildbeschreibung ein

Der jetzt definierte JSON-String wurde analysiert und in der Map platziert
Fügen Sie hier eine Bildbeschreibung ein

5) Überprüfen Sie den in der Karte platzierten Inhalt und erhalten Sie den Schlüssel in der Karte

Anweisungen zum Einfügen des Inhalts des JSON-Strings in die Karte
blog.csdnimg.cn/direct/ae6feeba2eae442f961df977a6c8eac1.jpeg)

1.1.2. JSON-String-Array-Eingabeparameter analysieren

Das Automatisierungsframework umfasst ein Initialisierungsframework, und einige erfordern Operationen an den darin enthaltenen Daten.Um die Datenbank zu betreiben, müssen Sie SQL schreiben
Hier ist ein JSON-Array. Jedes Element im Array ist eine JSON-Zeichenfolge, die Schlüsselwertdaten enthält. Das erste ist die SQL-Nummer, die tatsächlich ausgeführte SQL.

[{„sqlNo“: „1“, „sq!“: „Wählen Sie * aus Benutzern aus, bei denen Benutzername='qzcsbj';“},.“sqlNo“: „2“, „sql“: „Wählen Sie * aus Benutzern aus, bei denen Benutzername='test00501';“}]

Schritt 1: Erstellen Sie einen Paketnamen, einen Klassennamen und eine Hauptmethode
Schritt 2: Definieren Sie eine String-Variable. Hier ist das JSON-String-Array, das analysiert werden muss
Methode 1 (nicht ratsam): Analysieren Sie die Zeichenfolge JSONObjetct.parseArray(String text), der Rückgabewert ist JSONArray
1) Analysieren Sie die Zeichenfolge. Hier wird JSONObjetct.parseArray verwendet

Fügen Sie hier eine Bildbeschreibung ein

2) Direkter Durchlauf, jedes Element ist vom Typ Objekt und es werden auch zwei JSON-Zeichen ausgedruckt.

Fügen Sie hier eine Bildbeschreibung ein

3) Geben Sie den SQL-Wert im JSON-String aus. Hier gibt es keine Get- oder Set-Methoden. Sie können nur den JSON-String abrufen, nicht jedoch den Inhalt eines bestimmten Schlüssels.

Fügen Sie hier eine Bildbeschreibung ein
Diese Methode ist nicht empfehlenswert

Methode 2: JSONObjetct.parseArray(String text, Class clazz), der Rückgabewert ist List &lt;T&gt;, der Rückgabetyp ist List und das Rückgabeelement ist HashMap

Übergeben Sie zwei Parameter, der erste Parameter ist die zu analysierende Zeichenfolge und der zweite Parameter ist die Bytecode-Datei.
Die Lösung ist: Analysieren Sie den ersten Parameter-String in eine Map

1) Kapseln Sie jedes Element in ein Hashmap-Objekt. JSONObjetct.parseArray(String text, Class clazz) wird hier zum Parsen des String-Arrays verwendet.
2) Holen Sie sich sqlNein, SQL ist ein HashMap-Typ, Sie können die get-Methode verwenden

Fügen Sie hier eine Bildbeschreibung ein

3) Hier wird kein Schlüsselwert oder Typ erhalten. Der Standardwert ist „Objekt“. Hier wird die Konvertierung erzwungen, und die Referenz der übergeordneten Klasse verweist auf das untergeordnete Klassenobjekt.
4) Das heißt, der Wert, der jedem Schlüssel in der JSON-Zeichenfolge in SQL entspricht, wird erhalten.

Fügen Sie hier eine Bildbeschreibung ein

5) Diese Methode reicht nicht aus: Die Schlüssel in der JSON-Zeichenfolge müssen hier angezeigt werden. Wenn es viele gibt, ist dies problematisch.
 String sqlNo = (String)sql.get("sqlNo");
  • 1
Methode 3: Wird zur Behebung des ⑤-Mangels in Methode 2 verwendet, wobei im Allgemeinen die Kapselung verwendet wird

Kapseln Sie den Inhalt jeder JSON-Zeichenfolge in ein Objekt l, fügen Sie der Entitätsklasse get- und set-Methoden hinzu und erhalten Sie direkt object.get, um den Inhalt von SQL abzurufen. Diese Art von Code-Eingabeaufforderung ist auch bequemer zu schreiben. Auch die Automatisierung verweist auf diese Kapselung. Das heißt, SQL in ein Objekt zu kapseln,
Kapseln Sie die Eigenschaften als privat (sqlNo, sql), stellen Sie Get- und Set-Methoden bereit, parametrisierte Konstruktionsmethoden und Parameterlose Konstruktionsmethoden müssen hinzugefügt werden, und die Reflexion passt die Parameterlosen Konstruktionsmethoden an. Wenn Sie nur Parameter mit Parametern schreiben und keine Parameter-freien Konstruktoren schreiben, wird auf jeden Fall ein Fehler gemeldet. Um das String-Ergebnis zu drucken, müssen Sie die toString()-Methode hinzufügen, andernfalls wird die Adresse des Objekts gedruckt Die obige Entitätsklasse wurde geschrieben.

Optimieren Sie es erneut
Wenn das Element in ein Objekt gekapselt ist, wird es in eine von Ihnen selbst geschriebene Klasse geändert.class
Das ist sql.class

1) Definieren Sie eine SQL-Javabean: Die SQL-Klasse verfügt über die Attribute sqlNo und sql und fügt dann get-, set-Methoden, Konstruktionsmethoden und toString()-Methoden hinzu

Fügen Sie hier eine Bildbeschreibung einFügen Sie hier eine Bildbeschreibung ein

2) Kapseln Sie jede JSON-Zeichenfolge in ein SQL-Objekt (Test02), JSONObjetct.parseArray(String text, Class clazz), der Rückgabewert ist List &lt; T &gt;, der Rückgabetyp ist List und das Rückgabeelement ist ein SQL-Objekt

Die zweite Methode oben besteht darin, jedes Element in ein HashMap-Objekt zu kapseln, und hier wird jedes Element in ein SQL-Objekt gekapselt.
Fügen Sie hier eine Bildbeschreibung ein

3) Durchqueren

Rufen Sie Attribute direkt vom Objekt mit der get-Methode ab

Fügen Sie hier eine Bildbeschreibung ein
Diese Methode ist bequemer und erfordert nicht den Erwerb vieler Schlüssel.

pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>mavenProject</groupId>
    <artifactId>mavenProject</artifactId>
    <version>1.0-SNAPSHOT</version>


    <dependencies>


        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.75</version>
        </dependency>

    </dependencies>

</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

SQL-Klasse

package com.zhou.demo;

public class Sql {
    private String sql;
    private String sqlNo;

    public Sql() {
    }

    public Sql(String sql) {
        this.sql = sql;
    }


    public Sql(String sql, String sqlNo) {
        this.sql = sql;
        this.sqlNo = sqlNo;
    }

    public void setSql(String sql) {
        this.sql = sql;
    }

    public void setSqlNo(String sqlNo) {
        this.sqlNo = sqlNo;
    }

    public String getSql() {
        return sql;
    }

    public String getSqlNo() {
        return sqlNo;
    }

    @Override
    public String toString() {
        return "sql{" +
                "sql='" + sql + ''' +
                ", sqlNo='" + sqlNo + ''' +
                '}';
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
package com.zhou.demo;

import com.alibaba.fastjson.JSONObject;

import java.util.HashMap;
import java.util.Set;
//需求:将json字符串转化成map,字符串:{"username":"qzcsbj", "password":"123456"}

public class Test {
    public static void main(String[] args) {
        String parameters="{"username":"qzcsbj", "password":"123456"}";
        //先解析为JSONObject,然后转换为map
        HashMap<String, String> map = new HashMap<String, String>();

        // 解析json格式字符串为JSONObject(JSONObject是Map接口的一个实现类,和HashMap平级)

        JSONObject jsonObject = JSONObject.parseObject(parameters);
        // 将JSO\\\ NObject转换为map,先获取keys,先将keyset获取,集合里的每一个key都是String,通过遍历的key获取value,再放到map中
        Set<String> keys= jsonObject.keySet();
        for (String key:keys) {
            map.put(key,jsonObject.getString(key));

        }

        //验证,获取Map中的key
        Set<String> keys2 = map.keySet();
        for (String key :keys2) {
            System.out.println(key+"="+map.get(key));
        }

    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
package com.zhou.demo;

import com.alibaba.fastjson.JSONObject;

import java.util.HashMap;
import java.util.List;


//JSON数组,每个元素是json字符串
public class Test02 {

    public static void main(String[] args) {
        String initsql="[n" + "{"sqlNo":"1","sql":"select * from  users where  username='qzcsbj';"},n" +
                "{"sqlNo":"2","sql":"select * from  users where  username='tester00501';"}n" + "n" + "]";
  /*   //元素解析为Map
        List<HashMap> sqls = JSONObject.parseArray(initsql,HashMap.class);
        for (HashMap sql:sqls) {
            System.out.println(sql);
            String sqlNo = (String)sql.get("sqlNo");
            String sql_ = (String)sql.get("sql");
            System.out.println("sqlNo-"+sqlNo+",sql_-"+sql_);
        }*/



  //元素封装到对象
        List<Sql> sqls = JSONObject.parseArray(initsql, Sql.class);

        for (Sql sql:sqls) {
            String sqlNo = sql.getSqlNo();
            String sql_ = sql.getSql();
            System.out.println("sqlNo-"+",sql_"+sql_);

        }

    }


    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39

2. jsonpath (Anwendungsszenario: Analysieren der JSON-Antwortdaten, z. B. Abrufen von Assertionsfeldern, z. B. des zugehörigen zu erhaltenden Werts)

Denn derzeit ist das Projekt vom Front- und Backend getrennt.
Das Backend gibt im Allgemeinen JSON-Strings zurück
Wenn Sie Aussagen machen möchten, analysieren Sie normalerweise JSON. Nach dem Parsen machen Sie normalerweise nur Aussagen zu Schlüsselfeldern.
Behauptungen sind im Allgemeinen Code + Schlüsselgeschäftsfelder
Da es sich um eine JSON-Zeichenfolge handelt, müssen Sie jsonpath verwenden

①Abhängigkeit

②Abhängigkeiten hinzufügen und Abhängigkeiten werden automatisch generiert

blog.csdnimg.cn/5bdd9defd7db47b7a5934f79f9fd0ceb.png)
Fügen Sie hier eine Bildbeschreibung ein
Es muss bestätigt werden, ob die Abhängigkeiten heruntergeladen wurden

2.1. Beispiel (erhalten Sie die wichtigsten Geschäftsfelder, die in den Antwortdaten geltend gemacht werden sollen)

2.1.1. Ermitteln Sie die wichtigsten Geschäftsfelder, die in den Antwortdaten geltend gemacht werden sollen
Schritt 1: Erstellen Sie einen Klassennamen, eine Hauptmethode und definieren Sie eine Zeichenfolgenvariable

Diese Variable hier ist das Antwortfeld, das nach erfolgreicher Anmeldung zurückgegeben wird.
blog.csdnimg.cn/a20e89ee243c43f69a1b4e1c3a97b89b.png)

Schritt 2: Um Aussagen zu treffen, müssen Sie den darin enthaltenen Inhalt abrufen. Configuration.defaultConfiguration.jsonProvider().parse() wird verwendet und der Rückgabewert ist vom Typ Objekt.

Fügen Sie hier eine Bildbeschreibung ein
Übergeben Sie die definierte Feldantwort

Schritt 3: Verwenden Sie die Methode JsonPath.read(Object json, String jsonpath, predicate...filters), der Rückgabetyp ist Objekttyp

Fügen Sie hier eine Bildbeschreibung ein

Schnittstellenautomatisierung zur Verarbeitung abhängiger Daten
Holen Sie sich den Token vom Anfang dieser Zeile, der ebenfalls $ ist.
Wenn es sich nach dem Erhalt um eine globale Variable handelt, kann sie in der globalen Variablen gespeichert werden.
Wenn Sie die Behauptung erhalten möchten, dann erhalten Sie sie
Machen Sie eine andere Behauptung

3. httpclient (Anfragen durch Schreiben von Code senden)

Im Automatisierungsframework werden Anforderungen durch Schreiben von Code gesendet. Dies bedeutet, dass Sie httpclient verwenden müssen, eine von Java bereitgestellte Bibliothek, um mit dem Server zu interagieren.

①Abhängigkeit

②Abhängigkeiten hinzufügen und Abhängigkeiten werden automatisch generiert

Fügen Sie hier eine Bildbeschreibung ein

3.1. Beispiel (Anfrage abrufen, Anfrage posten)

3.1.1. Anfrage erhalten
Vorbereitungsarbeit: Überprüfen Sie, ob die Anforderungsschnittstelle des Swagger-Schnittstellendokuments übergeben wird. Sehen Sie sich das Schnittstellendokument an, um die FindById der Get-Anforderung und die zu übergebende ID zu ermitteln.

Muss einen Ausweis übergeben
Fügen Sie hier eine Bildbeschreibung ein
Aus der Bibliothek können wir ersehen, dass die ID 259 ist
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Schritt 1: Erstellen Sie einen Klassennamen Test04 und eine Hauptmethode
Schritt 2: Definieren Sie die Adressvariablen-URL der Schnittstelle und fordern Sie Parameter an

Fügen Sie hier eine Bildbeschreibung ein
In der Datendatei sind alle Parameter zu JSON-Strings verkettet, daher wird id=259 auch zu JSON-Strings verkettet.

Setzen Sie hier 259 in doppelte Anführungszeichen, um es automatisch zu maskieren.
Fügen Sie hier eine Bildbeschreibung ein

Schritt 3: Analysieren Sie die JSON-Zeichenfolge, verwenden Sie die Methode JSONObject.parseObject(), der Rückgabetyp ist der Typ JSONObject

Fügen Sie hier eine Bildbeschreibung ein

Schritt 4: Definieren Sie eine statische Methode getRequest(String url, JSONObject jsonobject)

Fügen Sie hier eine Bildbeschreibung ein

Schritt 5: Rufen Sie dann getRquest() in der Hauptmethode auf. Der Rückgabewert ist vom Typ String.

Fügen Sie hier eine Bildbeschreibung ein

Schritt sechs: Verbessern Sie die Logik der getRequest()-Methode

Anfrage abrufen: http://47.108.153.47:18089/qzcsbj/user/findById?id=259
?Parameter später direkt verbinden
Es sind auch mehrere Werte zu berücksichtigen: http://47.108.153.47:18089/qzcsbj/user/findById?id=259&name=jack

1) Holen Sie sich den Schlüssel über jsonobetct.keySet() und erhalten Sie eine Set-Sammlung

Fügen Sie hier eine Bildbeschreibung ein

2) Durchlaufen Sie die Set-Sammlung und erhalten Sie den Schlüsselwert

Fügen Sie hier eine Bildbeschreibung ein

3) Sie müssen auch den Fall mehrerer Werte berücksichtigen, dh Flag = true definieren, zuerst true schreiben und der Erste sein

Fügen Sie hier eine Bildbeschreibung ein

4) Andernfalls schreiben Sie Folgendes

Fügen Sie hier eine Bildbeschreibung ein

5) Definieren Sie eine res-Leerzeichenfolge und geben Sie res zurück

Fügen Sie hier eine Bildbeschreibung ein
Das Obige verkettet die Parameter-URL und die Parameter zum Senden der Get-Anfrage. Nach der Erstellung müssen Sie ein Get-Request-Objekt erstellen.

6) Erstellen Sie ein httpget-Anforderungsobjekt und wählen Sie als neues HttpGet (org.apache.http.client.methods) diesen Konstruktor aus

Geben Sie die URL ein
Hier erhalten Sie das httpget-Anforderungsobjekt
Fügen Sie hier eine Bildbeschreibung ein

7) Erstellen Sie einen httpclient-Client mit der Methode HttpClients.createDefault(). Der Rückgabetyp ist CloseableHttpClient

Fügen Sie hier eine Bildbeschreibung ein

Die abstrakte Klasse CloseableHttpClient implementiert die Schnittstelle HttpClient, Closeable
Fügen Sie hier eine Bildbeschreibung ein
Polymorphismus kann verwendet werden, und das Unterklassenobjekt zeigt auf die Referenz der übergeordneten Klasse (die von der übergeordneten Klasse implementierte Schnittstelle).
Fügen Sie hier eine Bildbeschreibung ein

8) Führen Sie die Anforderungsmethode „execute()“ aus, übergeben Sie das httpget-Objekt und lösen Sie dann eine Ausnahme aus

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

9) Nachdem Sie das HttpResponse-Objekt erhalten haben, können Sie dessen getEntity-Methode aufrufen, um das Httpentity-Antwortobjekt abzurufen. Nach dem Abrufen der EntityUtils.toString-Methode ist der Rückgabetyp der String-Typ.

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Das Ergebnis res ist oben definiert
Im Augenblick
Fügen Sie hier eine Bildbeschreibung ein

10) Laufen

Fügen Sie hier eine Bildbeschreibung ein

3.1.2. Post-Anfrage
Vorbereitungsarbeit: Überprüfen Sie, ob die Anforderungsschnittstelle des Swagger-Schnittstellendokuments übergeben wird

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Fügen Sie hier eine Bildbeschreibung ein

Schritt 1: Erstellen Sie einen Klassennamen Test05 und eine Hauptmethode

http://47.108.153.47:18089/qzcsbj/user/login
URL, Anforderungsparameter, Anforderungsheader

Fügen Sie hier eine Bildbeschreibung ein

Schritt 2: Definieren Sie die Adressvariablen-URL der Schnittstelle, die Parameter der Anforderungsparameter und die Anforderungsheader

Diese Parameter werden aus Datendateien im Automatisierungsframework abgerufen.
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

Schritt 3: Analysieren Sie den JSON-String-Absatz und die Header mit der Methode JSONObject.parseObject(). Der Rückgabewert ist vom Typ JSONObject.
Schritt 4: Definieren Sie eine Methode zum Senden von Post-Anfragen, verbessern Sie die Logik und übergeben Sie Header, URL und Parameter.

Definieren Sie res
zurück res

Fügen Sie hier eine Bildbeschreibung ein

1) Holen Sie sich den Schlüssel über jsonobetct.keySet (), holen Sie sich eine Set-Sammlung und durchlaufen Sie den Schlüssel, um den Schlüssel zu erhalten

Fügen Sie hier eine Bildbeschreibung ein

2) Wenn Sie die Methode addHeader() über das httppost-Objekt aufrufen möchten und der Rückgabetyp HttPost ist, müssen Sie zuerst ein httpppost-Objekt erstellen.

URL übergeben
Fügen Sie hier eine Bildbeschreibung ein

3) Rufen Sie die Methode addHeader() über das httppost-Objekt auf

Fügen Sie hier eine Bildbeschreibung ein

4) httpEntity ist erforderlich, aber httpEntity ist eine Schnittstelle. Sie müssen die Klasse StringEntity implementieren, um die Schnittstelle httpEntity zu implementieren.

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Wenn Sie sich den Konstruktor ansehen, können Sie String übergeben und den zweiten Konstruktor angeben.

Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein
Das Obige ist die gesendete Post-Anfrage: Der Anforderungsheader und die zu sendenden Daten sind alle definiert.

5) Erstellen Sie einen httpclient-Client mit der Methode HttpClients.createDefault(). Der Rückgabetyp ist CloseableHttpClient

Das Unterklassenobjekt verweist auf die Referenz der übergeordneten Klasse
Fügen Sie hier eine Bildbeschreibung ein

6) Senden Sie eine Anfrage, führen Sie die Anforderungsmethode „execute()“ aus, übergeben Sie das httppost-Objekt und lösen Sie dann eine Ausnahme aus.

Fügen Sie hier eine Bildbeschreibung ein

7)) Nachdem Sie das HttpResponse-Objekt erhalten haben, können Sie dessen getEntity-Methode aufrufen, um das Httpentity-Antwortobjekt abzurufen. Nach dem Abrufen der EntityUtils.toString-Methode ist der Rückgabetyp der String-Typ

Fügen Sie hier eine Bildbeschreibung ein

8) Rufen Sie die gerade in der Hauptmethode definierte Methode auf

Fügen Sie hier eine Bildbeschreibung ein

9) Laufen

Fügen Sie hier eine Bildbeschreibung ein