So stellen Sie eine SOAP-Anfrage mit Golang

PHPz
Freigeben: 2023-04-05 09:35:37
Original
1254 Leute haben es durchsucht

Mit der Entwicklung des Internets werden Webdienste immer wichtiger. SOAP ist ein Webdienstprotokoll, das XML als Kodierungsmethode verwendet. Es verwendet XML-basierte Protokolle zur Datenübertragung, wobei in der Regel das HTTP-Protokoll als zugrunde liegendes Transportprotokoll verwendet wird. Als aufstrebende Programmiersprache verfügt die Go-Sprache auch über eine XML-Verarbeitungsbibliothek, die SOAP unterstützt. Im Folgenden wird detailliert beschrieben, wie Golang zum Erstellen von SOAP-Anfragen verwendet wird.

1. Installieren Sie zugehörige Abhängigkeiten und Bibliotheken

Wir müssen zunächst die Golang-Entwicklungsumgebung installieren, die über den folgenden Link erhältlich ist: https://golang.org/dl/. Laden Sie die entsprechende Version entsprechend Ihrem Betriebssystem herunter und installieren Sie sie.
Dann müssen wir die folgenden zwei Bibliotheken installieren:

  1. net/http
    net/http-Bibliothek ist eine der Standardbibliotheken der Go-Sprache und bietet die Implementierung von HTTP-Client und -Server. In einer SOAP-Anfrage verwenden wir dies, um eine HTTP-POST-Anfrage zu senden und die Antwort zu empfangen. Die Bibliothek
  2. encoding/xml
    encoding/xml bietet Kodierungs- und Dekodierungsfunktionen für XML-Dokumente. Über diese Bibliothek können wir die XML-Formatdaten der SOAP-Anfrage in eine HTTP-POST-Anfrage packen, an den Webdienst senden und das XML-Dokument aus der Webdienstantwort lesen.

Nachdem die Installation abgeschlossen ist, können wir mit dem Schreiben des Codes beginnen.

2. Erstellen Sie eine SOAP-Anfrage

In Golang können Sie eine SOAP-Anfrage über den folgenden Code erstellen:

type Envelope struct {
    XMLName xml.Name `xml:"soap:Envelope"`
    SoapNs  string   `xml:"xmlns:soap,attr"`
    Body    *Body
}
type Body struct {
    XMLName xml.Name `xml:"soap:Body"`
    Req     *Request
}
type Request struct {
    XMLName        xml.Name  `xml:"MyRequest"`
    RequestContent string    `xml:"RequestContent"`
}

func CreateSOAPRequest() []byte {
    soap := &Envelope{
        SoapNs: "http://schemas.xmlsoap.org/soap/envelope/",
        Body: &Body{
            Req: &Request{
                RequestContent: "This is a sample SOAP request",
            },
        },
    }
    output, err := xml.MarshalIndent(soap, "", "    ")
    if err != nil {
        panic(err)
    }
    return output
}
Nach dem Login kopieren

Dieser Code definiert eine Umschlagstruktur, die die SOAP-Nachricht darstellt. Darin befindet sich eine Body-Struktur, die den Nachrichtentext in der SOAP-Nachricht darstellt. Normalerweise müssen wir eine Anforderungsstruktur definieren, um den spezifischen Inhalt der SOAP-Anfrage zu beschreiben. In der Funktion init() erstellen wir eine Instanz der SOAP-Anfrage und ändern die Eigenschaften „Envelope“ und „Request“ nach Bedarf, um die entsprechende SOAP-Anfrage festzulegen.

3. Senden Sie eine SOAP-Anfrage

Bevor wir eine SOAP-Anfrage senden, müssen wir die SOAP-Nachrichtendaten in ein Byte-Array im Hauptteil der HTTP-POST-Anfrage packen und den Header der HTTP-Anfrage festlegen. Der Code lautet wie folgt:

client := http.Client{}
// 设置请求地址、方法及消息体
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(CreateSOAPRequest()))
req.Header.Add("Content-Type", "text/xml;charset=utf-8")
// 发送请求
resp, err := client.Do(req)
if err != nil {
    fmt.Println("Request Error: ", err)
    return
}
defer resp.Body.Close()
Nach dem Login kopieren

Nach dem Senden der Anfrage müssen wir das Rückgabeergebnis überprüfen und die Antwort analysieren. Der Code lautet wie folgt:

var result []byte
resp.Body.Read(result)
fmt.Println(string(result))
Nach dem Login kopieren

Dieser Code analysiert das Antwortergebnis, wandelt es in einen String um und gibt ihn aus.

4. Zusammenfassung

Das Obige ist der gesamte Prozess der Verwendung von Golang zum Stellen von SOAP-Anfragen, einschließlich der Erstellung von SOAP-Anfragen, dem Senden von SOAP-Anfragen und dem Parsen von Antworten. Es ist erwähnenswert, dass der Prozess der Verwendung von Golang zur Ausführung von SOAP-Anfragen die Vorteile einer hohen Flexibilität, eines einfachen Lesens und Schreibens sowie einer schnellen Ausführungsgeschwindigkeit bietet und sich für die Entwicklung von Webdiensten unterschiedlicher Größe eignet. Wenn Sie auch die Go-Sprache für die SOAP-Verarbeitung ausprobieren möchten, dann beeilen Sie sich und üben Sie es!

Das obige ist der detaillierte Inhalt vonSo stellen Sie eine SOAP-Anfrage mit Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!