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 :
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 }
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()
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))
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!