-1

嗨,我正在使用 google golang 重置服务我在尝试运行此代码时遇到 post 方法的问题,它显示未定义的 post 数据

    package main

import (
    "code.google.com/p/gorest"
    "fmt"
    "net/http"
)

type Invitation struct {
    User string
}

//Service Definition
type HelloService struct {
    gorest.RestService
    //gorest.RestService `root:"/tutorial/"`
    helloWorld gorest.EndPoint `method:"GET" path:"/hello-world/" output:"string"`
    sayHello   gorest.EndPoint `method:"GET" path:"/hello/{name:string}" output:"string"`
    posted     gorest.EndPoint `method:"POST" path:"/post/"  postdata:"User" `
}

func main() {
    gorest.RegisterService(new(HelloService)) //Register our service
    http.Handle("/", gorest.Handle())
    http.ListenAndServe(":8787", nil)
}

func (serv HelloService) Posted(posted User) {
    fmt.Println(User)
}

func (serv HelloService) HelloWorld() string {
    return "Hello World"
}
func (serv HelloService) SayHello(name string) string {
    return "Hello " + name
}

这是我得到的错误

# command-line-arguments
./registation.go:28: undefined: User
./registation.go:29: undefined: User

请帮助解决这个问题
谢谢

4

2 回答 2

0
func (serv HelloService) Posted(posted User) {
    fmt.Println(User)
}

应该

func (serv HelloService) Posted(posted User) {
    fmt.Println(posted)
}

Posted 方法接受一个参数,该参数带有发布的名称和用户的类型。

你应该打印实际的参数,而不是它的类型 - 就像你在这里一样

func (serv HelloService) SayHello(name string) string {
    return "Hello " + name
}
于 2015-04-01T14:12:27.320 回答
-1
        package main

    import (
        //"bytes"
        "code.google.com/p/gorest"
        "crypto/rand"
        "crypto/tls"
        //"encoding/json"
        "fmt"
        "log"
        "net"
        "net/http"
        "net/mail"
        "net/smtp"
    )

    type InvitEmail struct {
        SenderEmail   string
        ReceiverEmail string
    }

    //Service Definition
    type HelloService struct {
        gorest.RestService
        //gorest.RestService `root:"/tutorial/"`
        helloWorld   gorest.EndPoint `method:"GET" path:"/hello-world/" output:"string"`
        sayHello     gorest.EndPoint `method:"GET" path:"/hello/{name:string}" output:"string"`
        userRegister gorest.EndPoint `method:"POST" path:"/UserRegister/" postdata:"InvitEmail"`
        /*activate     gorest.EndPoint `method:"GET" path:"/activate/{email:string}/{token:string}" output:"bool"`
        userInvite   gorest.EndPoint `method:"POST" path:"/UserInvite/" postdata:"InvitEmail"`*/
    }

    func main() {
        gorest.RegisterService(new(HelloService)) //Register our service
        http.Handle("/", gorest.Handle())
        http.ListenAndServe(":8787", nil)
    }

    func (serv HelloService) UserRegister(u InvitEmail) {

        fmt.Println(u.ReceiverEmail, "xxxxxxxx", u.SenderEmail)


        invitationmail(u.SenderEmail, u.ReceiverEmail)

        serv.ResponseBuilder().SetResponseCode(200).Write([]byte("from :" + u.SenderEmail + "      to :" + u.ReceiverEmail))
    }

    func (serv HelloService) HelloWorld() string {
        return "Hello World"
    }
    func (serv HelloService) SayHello(name string) string {

        return "Hello " + name
    }
func invitationmail(sender, receiver) {
//emailsendingpart
}
于 2015-04-02T06:15:01.853 回答