インターネットの発展に伴い、Web サービスの重要性はますます高まっています。 SOAP は、エンコード方式として XML を使用する Web サービス プロトコルです。 XML ベースのプロトコルを使用してデータを送信します。通常は、基礎となるトランスポート プロトコルとして HTTP プロトコルが使用されます。新興プログラミング言語である Go 言語にも SOAP をサポートする XML 処理ライブラリがありますので、ここでは Golang を使用して SOAP リクエストを実行する方法を詳しく紹介します。
1. 関連する依存関係とライブラリをインストールする
最初に、リンク https://golang.org/dl/ から入手できる golang 開発環境をインストールする必要があります。オペレーティング システムに応じて、対応するバージョンをダウンロードしてインストールします。
次に、次の 2 つのライブラリをインストールする必要があります。
インストールが完了したら、コードの記述を開始できます。
2. SOAP リクエストの作成
Golang では、次のコードを通じて SOAP リクエストを作成できます:
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 }
このコードは、SOAP を表すエンベロープ構造を定義します。レポート芸術。その中には、SOAP メッセージのメッセージ本文を表す Body 構造体があります。通常、SOAP リクエストの特定のコンテンツを記述するためにリクエスト構造を定義する必要があります。 init() 関数では、SOAP リクエストのインスタンスを作成し、必要に応じて Envelope プロパティと Request プロパティを変更して、適切な SOAP リクエストを設定します。
3. SOAP リクエストの送信
SOAP リクエストを送信する前に、SOAP メッセージ データを HTTP POST リクエストの本文のバイト配列にパッケージ化し、ヘッダーを設定する必要があります。 HTTPリクエスト。コードは次のとおりです。
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()
リクエストを送信した後、返された結果を確認し、レスポンスを解析する必要があります。コードは次のとおりです。
var result []byte resp.Body.Read(result) fmt.Println(string(result))
このコードは、応答結果を解析し、文字列に変換して、出力を出力します。
4. 概要
上記は、SOAP リクエストの作成、SOAP リクエストの送信、応答の解析を含む、Golang を使用して SOAP リクエストを作成するプロセス全体です。 Golang を使用して SOAP リクエストを実行するプロセスには、柔軟性が高く、読み書きが容易で、実行速度が速いという利点があり、さまざまなサイズの Web サービスの開発に適していることは言及する価値があります。あなたもSOAP処理にGo言語を使ってみたいという方は、急いで練習してください!
以上がGolangを使用してSOAPリクエストを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。