首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何将java注解转换成go代码?

如何将java注解转换成go代码?
EN

Stack Overflow用户
提问于 2015-09-15 22:01:55
回答 1查看 1.8K关注 0票数 2

我正在将我的java项目改为golang。我正在使用java注解,并希望将其转换为go代码。我想知道go中最好的数据结构来转换这个注解。

我的代码如下:

package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "net/http"
    "strconv"
    "time"
)

func getBody(method string, Id string, auth string, body []byte,timeStamp int64) ([]byte, error) {

    url := "****************"+Id+"***********"+strconv.FormatInt(timeStamp,10)
    client := &http.Client{}
    req, err := http.NewRequest(method, url, bytes.NewReader(body))

    if err != nil {
        return nil, err
    }

    var header = make(map[string]string,2)
    header["Accept"]="*******************"
    header["Authorization"]=auth

    for key, value := range header {
        req.Header.Add(key, value)
    }

    res, err := client.Do(req)
    defer res.Body.Close()

    if err != nil {
        return nil, err
    }

    var bodyBytes []byte

    if res.StatusCode == 200 {
        bodyBytes, err = ioutil.ReadAll(res.Body)
    } else if err != nil {
        return nil, err
    } else {
        return nil, fmt.Errorf("The remote end did not return a HTTP 200 (OK) response.")
    }

    return bodyBytes, nil

}

func main() {

    method := "GET"
    auth:="************"
    var timeStamp int64 = 1441689793403
    Id:="***********"
    fmt.Println(timeStamp)
    var cs int64 = time.Now().UnixNano()/1000000
    for{
        cs = time.Now().UnixNano()/1000000
        bodyBytes, err := getBody(method, Id, auth, nil,timeStamp)
        if err != nil {
            fmt.Errorf("unable to retrieve the response body from the Glance API server: %v", err)
        }

        var obj []interface{}
        err = json.Unmarshal(bodyBytes, &obj)

        if err != nil {
            fmt.Errorf("unable to parse the JSON response:", err)
        }

        for i,_:=range obj{
            m := obj[i].(map[string]interface{})
            fmt.Println(m["text"])

         /* @OnKeyWord("hi")
          public void HelloWorld(TeamchatAPI api) {
          System.out.println("Hello word");
                );  */


        }

        timeStamp = cs
    }
}

我想把注释过的java代码转换成go代码。

或者,如果你愿意,你可以用你自己的例子来解释。

EN

回答 1

Stack Overflow用户

发布于 2015-11-19 05:17:58

在完成@icza解释的转换之后,您可能希望将功能转移到为所有请求运行的中间件(example)。这样,您就可以在业务方法之外添加辅助逻辑( "if“部分)。

也不需要自己实现HTTP框架的中间件。大多数web框架都是由default提供的include

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32588120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档