Go语言服务器开发实现最简单HTTP的GET与POST接口
本文实例讲述了Go语言服务器开发实现最简单HTTP的GET与POST接口。分享给大家供大家参考。具体分析如下:
Go语言提供了http包,可以很轻松的开发http接口。以下为示例代码:
packagewebserver
import(
"encoding/json"
"fmt"
"net/http"
"time"
)
funcWebServerBase(){
fmt.Println("Thisiswebserverbase!")
//第一个参数为客户端发起http请求时的接口名,第二个参数是一个func,负责处理这个请求。
http.HandleFunc("/login",loginTask)
//服务器要监听的主机地址和端口号
err:=http.ListenAndServe("192.168.1.27:8081",nil)
iferr!=nil{
fmt.Println("ListenAndServeerror:",err.Error())
}
}
funcloginTask(whttp.ResponseWriter,req*http.Request){
fmt.Println("loginTaskisrunning...")
//模拟延时
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)
ifuserName=="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对象:
packagewebserver
typeBaseJsonBeanstruct{
Code int `json:"code"`
Data interface{}`json:"data"`
Messagestring `json:"message"`
}
funcNewBaseJsonBean()*BaseJsonBean{
return&BaseJsonBean{}
}
希望本文所述对大家的Go语言程序设计有所帮助。