使用 gowsdl 进行 SOAP 调用



我正在使用gowsdl在Go中使用SOAP请求。我得到了WSDL并使用它生成了代码。在自动生成的代码中,它生成了存根,下面提到了一些代码片段。

  1. 我必须进行SOAP调用,并且必须GetAllPersons struct作为服务的输入传递。请帮我怎么做?我有请求xml但不知道如何在GetAllPersons struct中更新它?

    persons, err := service.GetAllPersons(request)
    type GetAllPersons struct {
        XMLName xml.Name `xml:"http://service.jaxws.journaldev.com getAllPersons"`
    }
    
  2. 根据 Go 规范,使用 sybtax VariableName Type 声明一个变量。上述structxml:"http://service.jaxws.journaldev.com getAllPersons"的第 3 个值是什么?

下面是我想出的代码,用于使用gowsdl生成的代码完成工作。

main(){
    basicauth := personService.BasicAuth{"",""}
    service := personService.NewPersonServiceImpl("", false, &basicauth)
    persons, err := service.GetAllPersons(&personService.GetAllPersons{})
    if err != nil {
        panic(err)
    }
    fmt.Println(persons)
    fmt.Printf("Alive?: %tn", persons.GetAllPersonsReturn[0].Name)
    fmt.Printf("Alive?: %tn", persons.GetAllPersonsReturn[1].Name)
    fmt.Printf("Alive?: %tn", persons.GetAllPersonsReturn[0].Id)
    fmt.Printf("Alive?: %tn", persons.GetAllPersonsReturn[1].Id)
    fmt.Printf("Alive?: %tn", persons.GetAllPersonsReturn[0].Age)
    fmt.Printf("Alive?: %tn", persons.GetAllPersonsReturn[1].Age)
    fmt.Printf(persons.GetAllPersonsReturn[0].Name)
    request := &personService.AddPerson{P: &personService.Person{Age: 24, Name: "Govinda", Id: 55555555}}
    trial, err := service.AddPerson(request)
    if err != nil {
        panic(err)
    }
}

对于第二个问题,感谢Volker在评论中提到答案。 These strings after the type are called tags (see golang.org/ref/spec#Struct_types) and are used typically during (un)marshalling from serialisation formats like xml

相关内容

  • 没有找到相关文章

最新更新