没有GOandroid服务器端搭建的API,这玩意得怎么整

创建收藏夹
确认创建 作者信息作者近期话题热门话题回复最多的话题Github
京ICP备号-2Go语言服务器开发实现最简单HTTP的GET与POST接口
转载 & & 作者:books1958
这篇文章主要介绍了Go语言服务器开发实现最简单HTTP的GET与POST接口,实例分析了Go语言http包的使用技巧,需要的朋友可以参考下
本文实例讲述了Go语言服务器开发实现最简单HTTP的GET与POST接口。分享给大家供大家参考。具体分析如下:
Go语言提供了http包,可以很轻松的开发http接口。以下为示例代码:
代码如下:package webserver&
&&& "encoding/json"&
&&& "fmt"&
&&& "net/http"&
&&& "time"&
func WebServerBase() {&
&&& fmt.Println("This is webserver base!")&
&&& //第一个参数为客户端发起http请求时的接口名,第二个参数是一个func,负责处理这个请求。&
&&& http.HandleFunc("/login", loginTask)&
&&& //服务器要监听的主机地址和端口号&
&&& err := http.ListenAndServe("192.168.1.27:8081", nil)&
&&& if err != nil {&
&&&&&&& fmt.Println("ListenAndServe error: ", err.Error())&
func loginTask(w http.ResponseWriter, req *http.Request) {&
&&& fmt.Println("loginTask is running...")&
&&& //模拟延时&
&&& time.Sleep(time.Second * 2)&
&&& //获取客户端通过GET/POST方式传递的参数&
&&& req.ParseForm()&
&&& param_userName, found1 := req.Form["userName"]&
&&& param_password, found2 := req.Form["password"]&
&&& if !(found1 && found2) {&
&&&&&&& fmt.Fprint(w, "请勿非法访问")&
&&&&&&& return&
&&& result := NewBaseJsonBean()&
&&& userName := param_userName[0]&
&&& password := param_password[0]&
&&& s := "userName:" + userName + ",password:" + password&
&&& fmt.Println(s)&
&&& if userName == "zhangsan" && password == "123456" {&
&&&&&&& result.Code = 100&
&&&&&&& result.Message = "登录成功"&
&&& } else {&
&&&&&&& result.Code = 101&
&&&&&&& result.Message = "用户名或密码不正确"&
&&&&&&& //向客户端返回JSON数据&
&&& bytes, _ := json.Marshal(result)&
&&& fmt.Fprint(w, string(bytes))&
NewBaseJsonBean用于创建一个struct对象:
代码如下:package webserver&
type BaseJsonBean struct {&
&&& Code&&& int&&&&&&&& `json:"code"`&
&&& Data&&& interface{} `json:"data"`&
&&& Message string&&&&& `json:"message"`&
func NewBaseJsonBean() *BaseJsonBean {&
&&& return &BaseJsonBean{}&
希望本文所述对大家的Go语言程序设计有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
我现在是用beego来同时作为api服务器和静态文件服务器,现在我发现用户浏览器会自动缓存上次的html页面,而不是每次去取最新版本,我是否能在beego这一层动态加上以下两行呢?
header(&Cache-Control:no-stroe,no-cache,must-revalidate,post-check=0,pre-check=0&);
header(&Pragma:no-cache&); //反向代理可以不缓存网页
你的问题是不想让HTML在客户端缓存下来,我刚搜索了一下
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
正确的做法是给这些文件的请求增加HTTP response header, 那么问题就简单了,你可以使用beego的plugin
var FilterNoCache = func(ctx *context.Context) {
ctx.Output.Header("Cache-Control", "no-cache, no-store, must-revalidate")
ctx.Output.Header("Pragma", "no-cache")
ctx.Output.Header("Expires","0")
beego.InsertFilter("/static/*",beego.BeforeStatic, FilterNoCache)
要回复问题请先或
浏览: 1649
关注: 2 人没有更多推荐了,
不良信息举报
举报内容:
我学xingo golang服务器之-XingoApi调用
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 app服务器端开发 的文章

 

随机推荐