Maison > développement back-end > Golang > Comment faire une requête SOAP en utilisant Golang

Comment faire une requête SOAP en utilisant Golang

PHPz
Libérer: 2023-04-05 09:35:37
original
1284 Les gens l'ont consulté

Avec le développement d'Internet, les services Web prennent de plus en plus d'importance. SOAP est un protocole de service Web qui utilise XML comme méthode de codage. Il utilise des protocoles basés sur XML pour transmettre des données, en utilisant généralement le protocole HTTP comme protocole de transport sous-jacent. En tant que langage de programmation émergent, le langage Go dispose également d'une bibliothèque de traitement XML qui prend en charge SOAP. Ce qui suit présente en détail comment utiliser Golang pour effectuer des requêtes SOAP.

1. Installer les dépendances et les bibliothèques associées

Nous devons d'abord installer l'environnement de développement golang, qui peut être obtenu via le lien suivant : https://golang.org/dl/. Téléchargez la version correspondante en fonction de votre système d'exploitation et installez-la.
Ensuite, nous devons installer les deux bibliothèques suivantes :

  1. La bibliothèque net/http
    net/http est l'une des bibliothèques standards du langage Go, permettant l'implémentation du client et du serveur HTTP. Dans une requête SOAP, nous l'utilisons pour envoyer une requête HTTP POST et recevoir la réponse. La bibliothèque
  2. encoding/xml
    encoding/xml fournit des fonctions d'encodage et de décodage pour les documents XML. Grâce à cette bibliothèque, nous pouvons regrouper les données au format XML de la requête SOAP dans une requête HTTP POST et l'envoyer au service Web, et lire le document XML à partir de la réponse du service Web.

Une fois l'installation terminée, nous pouvons commencer à écrire du code.

2. Créer une requête SOAP

Dans Golang, vous pouvez créer une requête SOAP via le code suivant :

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
}
Copier après la connexion

Ce code définit une structure Enveloppe, qui représente le message SOAP. À l’intérieur se trouve une structure Body, qui représente le corps du message dans le message SOAP. Habituellement, nous devons définir une structure de requête pour décrire le contenu spécifique de la requête SOAP. Dans la fonction init(), nous créons une instance de la requête SOAP et modifions les propriétés Envelope et Request si nécessaire pour définir la requête SOAP appropriée.

3. Envoyer une requête SOAP

Avant d'envoyer une requête SOAP, nous devons regrouper les données du message SOAP dans un tableau d'octets dans le corps de la requête HTTP POST et définir l'en-tête de la requête HTTP. Le code est le suivant :

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()
Copier après la connexion

Après l'envoi de la demande, nous devons vérifier le résultat du retour et analyser la réponse. Le code est le suivant :

var result []byte
resp.Body.Read(result)
fmt.Println(string(result))
Copier après la connexion

Ce code analyse le résultat de la réponse, le convertit en chaîne et l'imprime.

4. Résumé

Ce qui précède représente l'ensemble du processus d'utilisation de Golang pour effectuer des requêtes SOAP, y compris la création de requêtes SOAP, l'envoi de requêtes SOAP et l'analyse des réponses. Il convient de mentionner que le processus d'utilisation de Golang pour exécuter des requêtes SOAP présente les avantages d'une grande flexibilité, d'une lecture et d'une écriture faciles et d'une vitesse d'exécution rapide, et convient au développement de services Web de différentes tailles. Si vous souhaitez également essayer d'utiliser le langage Go pour le traitement SOAP, alors dépêchez-vous et pratiquez-le !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal