Skip to content
This repository has been archived by the owner on Jan 15, 2024. It is now read-only.
/ gosoap Public archive
forked from tiaguinho/gosoap

🦉SOAP package for Go

License

Notifications You must be signed in to change notification settings

BioDread/gosoap

 
 

Repository files navigation

Go Soap Build Status GoDoc Go Report Card codecov patreon

package to help with SOAP integrations (client)

Mellat soap bug (fix)

به علت نبودن نیم اسپیس بانک ملت در مسیر تعیین شده در نمونه اصلی این کتابخانه به مشکل ایندکس اووت آو رنج برخواهید خورد که فورک گرفته شده این مشکل حل شده است

Install

go get github.com/BioDread/gosoap

Example

package main

import (
	"encoding/xml"
	"log"

	"github.com/BioDread/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)
}

About

🦉SOAP package for Go

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 100.0%