- 能够在环境中设置代理goproxy.cn防止国内下包出错
启动服务
最开始能够先对一个端口18080启动一个服务:
package main
import (
"log"
"net/http"
)
func index(w http.ResponseWriter, r *http.Request) {
}
func main() {
// 启动一个http服务 指明ip和端口
server := http.Server{
Addr: "127.0.0.1:18080",
}
//响应拜访http://localhost:18080/的申请
http.HandleFunc("/", index)
// 监听对应的端口 & 启动服务
if err := server.ListenAndServe(); err != nil {
log.Println(err)
}
}
成果:
没有404,阐明服务启动胜利。
增加响应
接下来,咱们在index这个func能够增加响应:
func index(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("hey this is LiberHom"))
}
传递json数据
当然,理论开发个别不会是这么简略的文字,而是一些web页面,须要给前端返回json信息,咱们须要在Header中指明是json。
func index(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
w.Write([]byte("hey this is LiberHom"))
}
成果:
咱们能够结构残缺一些的例子如下:
package main
import (
"encoding/json"
"log"
"net/http"
)
//结构一些数据
type IndexData struct {
Title string `json:"title"`
Desc string `json:"desc"`
}
func index(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
var indexData IndexData
indexData.Title = "Liber-Blog"
indexData.Desc = "this is the desc part"
//把构造体实例转成对应的json
jsonStr, _ := json.Marshal(indexData)
w.Write(jsonStr)
}
func main() {
// 启动一个http服务 指明ip和端口
server := http.Server{
Addr: "127.0.0.1:18080",
}
//响应拜访http://localhost:18080/的申请
http.HandleFunc("/", index)
// 监听对应的端口 & 启动服务
if err := server.ListenAndServe(); err != nil {
log.Println(err)
}
}
运行后果如下:
参考: bilibili
发表回复