【问题标题】:Making a SOAP call with gowsdl使用 gowsdl 进行 SOAP 调用
【发布时间】:2017-11-15 06:26:31
【问题描述】:

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

  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 声明的。上面struct 中的第三个值xml:"http://service.jaxws.journaldev.com getAllPersons" 是什么?

【问题讨论】:

  • 我无法解析您的问题。您是否想问«我将哪些字段放入GetAllPersons struct 类型,该类型表示对“getAllPersons”WS 调用的输入请求?»?
  • @kostix:已进行更改以明确问题。我希望这会有所帮助。
  • 类型后面的这些字符串称为标签(请参阅golang.org/ref/spec#Struct_types),通常在从 xml 等序列化格式(取消)编组期间使用。
  • 你发现了吗?您将密码和用户名存储在哪里?有类似的问题
  • @Data_Kid:已发布答案。请检查。

标签: xml web-services go soap


【解决方案1】:

下面是我想出的用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?: %t\n", persons.GetAllPersonsReturn[0].Name)
    fmt.Printf("Alive?: %t\n", persons.GetAllPersonsReturn[1].Name)
    fmt.Printf("Alive?: %t\n", persons.GetAllPersonsReturn[0].Id)
    fmt.Printf("Alive?: %t\n", persons.GetAllPersonsReturn[1].Id)
    fmt.Printf("Alive?: %t\n", persons.GetAllPersonsReturn[0].Age)
    fmt.Printf("Alive?: %t\n", 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 在 cmets 中提到了答案。 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多