Go语言服务器开发实现最简单HTTP的GET与POST接口
程序员文章站
2022-03-21 10:30:02
本文实例讲述了go语言服务器开发实现最简单http的get与post接口。分享给大家供大家参考。具体分析如下:
go语言提供了http包,可以很轻松的开发http接口。以...
本文实例讲述了go语言服务器开发实现最简单http的get与post接口。分享给大家供大家参考。具体分析如下:
go语言提供了http包,可以很轻松的开发http接口。以下为示例代码:
复制代码 代码如下:
package webserver
import (
"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))
}
import (
"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{}
}
type basejsonbean struct {
code int `json:"code"`
data interface{} `json:"data"`
message string `json:"message"`
}
func newbasejsonbean() *basejsonbean {
return &basejsonbean{}
}
希望本文所述对大家的go语言程序设计有所帮助。
上一篇: Go语言实现的树形结构数据比较算法实例
下一篇: Go语言中普通函数与方法的区别分析