# README
Go Soap

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.