Categorygithub.com/DocHQ/gosoap
modulepackage
1.2.3
Repository: https://github.com/dochq/gosoap.git
Documentation: pkg.go.dev

# README

Go Soap Build Status GoDoc Go Report Card codecov patreon

package to help with SOAP integrations (client)

Install

go get github.com/tiaguinho/gosoap

Example

package main

import (
	"encoding/xml"
	"log"

	"github.com/tiaguinho/gosoap"
)

// GetIPLocationResponse will hold the Soap response
type GetIPLocationResponse struct {
	GetIPLocationResult string `xml:"GetIpLocationResult"`
}

// GetIPLocationResult will
type GetIPLocationResult struct {
	XMLName xml.Name `xml:"GeoIP"`
	Country string   `xml:"Country"`
	State   string   `xml:"State"`
}

var (
	r GetIPLocationResponse
)

func main() {
	soap, err := gosoap.SoapClient("http://wsgeoip.lavasoft.com/ipservice.asmx?WSDL")
	if err != nil {
		log.Fatalf("SoapClient error: %s", err)
	}

	params := gosoap.Params{
		"sIp": "8.8.8.8",
	}

	res, err := soap.Call("GetIpLocation", params)
	if err != nil {
		log.Fatalf("Call error: %s", err)
	}

	res.Unmarshal(&r)

	// GetIpLocationResult will be a string. We need to parse it to XML
	result := GetIPLocationResult{}
	err = xml.Unmarshal([]byte(r.GetIPLocationResult), &result)
	if err != nil {
		log.Fatalf("xml.Unmarshal error: %s", err)
	}

	if result.Country != "US" {
		log.Fatalf("error: %+v", r)
	}

	log.Println("Country: ", result.Country)
	log.Println("State: ", result.State)
}

# Functions

No description provided by the author
No description provided by the author
No description provided by the author
SoapClient return new *Client to handle the requests with the WSDL.

# Structs

Client struct hold all the informations about WSDL, request and response of the server.
No description provided by the author
Fault response.
Soap Request.
Soap Response.
SoapBody struct.
SoapEnvelope struct.
SoapHeader struct.

# Interfaces

No description provided by the author

# Type aliases

HeaderParams holds params specific to the header.
Params type is used to set the params in soap request.