Rumah >pembangunan bahagian belakang >Golang >Cara membuat permintaan SOAP menggunakan Golang
Dengan perkembangan Internet, perkhidmatan Web menjadi semakin penting. SOAP ialah protokol perkhidmatan Web yang menggunakan XML sebagai kaedah pengekodan. Ia menggunakan protokol berasaskan XML untuk menghantar data, biasanya menggunakan protokol HTTP sebagai protokol pengangkutan asas. Sebagai bahasa pengaturcaraan yang baru muncul, bahasa Go juga mempunyai perpustakaan pemprosesan XML yang menyokong SOAP Berikut akan memperkenalkan secara terperinci cara menggunakan Golang untuk membuat permintaan SOAP.
1. Pasang kebergantungan dan perpustakaan yang berkaitan
Mula-mula kita perlu memasang persekitaran pembangunan golang, yang boleh diperolehi melalui pautan berikut: https://golang.org/dl/. Muat turun versi yang sepadan mengikut sistem pengendalian anda dan pasangkannya.
Kemudian, kita perlu memasang dua perpustakaan berikut:
Selepas pemasangan selesai, kita boleh mula menulis kod.
2. Buat permintaan SOAP
Di Golang, anda boleh membuat permintaan SOAP melalui kod berikut:
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 }
Kod ini mentakrifkan struktur Sampul, yang mewakili Mesej SOAP. Di dalamnya, terdapat struktur Badan, yang mewakili badan mesej dalam mesej SOAP. Biasanya kita perlu mentakrifkan struktur Permintaan untuk menerangkan kandungan khusus permintaan SOAP. Dalam fungsi init(), kami mencipta contoh permintaan SOAP dan mengubah suai sifat Envelope dan Request seperti yang diperlukan untuk menetapkan permintaan SOAP yang sesuai.
3. Hantar permintaan SOAP
Sebelum menghantar permintaan SOAP, kita perlu membungkus data mesej SOAP ke dalam tatasusunan bait dalam Badan permintaan HTTP POST dan menetapkan Pengepala bagi permintaan HTTP. Kodnya adalah seperti berikut:
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()
Selepas menghantar permintaan, kami perlu menyemak hasil pemulangan dan menghuraikan respons. Kodnya adalah seperti berikut:
var result []byte resp.Body.Read(result) fmt.Println(string(result))
Kod ini menghuraikan hasil respons, menukarnya menjadi rentetan dan mencetaknya.
4. Ringkasan
Di atas ialah keseluruhan proses menggunakan Golang untuk membuat permintaan SOAP, termasuk membuat permintaan SOAP, menghantar permintaan SOAP dan menghurai respons. Perlu dinyatakan bahawa proses menggunakan Golang untuk melaksanakan permintaan SOAP mempunyai kelebihan fleksibiliti yang tinggi, membaca dan menulis yang mudah, dan kelajuan berjalan pantas, dan sesuai untuk membangunkan perkhidmatan Web dalam pelbagai saiz. Jika anda juga ingin mencuba menggunakan bahasa Go untuk pemprosesan SOAP, maka cepat dan amalkannya!
Atas ialah kandungan terperinci Cara membuat permintaan SOAP menggunakan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!