GO的Web开发Day01、简单的http的服务器操作


一、服务器的启动

func main() {

	err := http.ListenAndServe("127.0.0.3:333", nil)
	if err != nil {
		panic(err)
	}

}

二、路由的设置

func Routers() {

	// 1 页面的设置
	http.HandleFunc("/", views.HTML.Index)


	// 2 api数据
	http.HandleFunc("/api/v1/login", apis.API.Login)




	// 3静态资源  映射问题
	


    // 建立一个http路径
	staticDir := http.Dir("./public/resource/")


    // 建立一个文件服务器, 目录是./public/resource/
    fileServer := http.FileServer(staticDir)


    // 返回一个函数,
    // 后把/resource/变成 文件服务器的目录  ./public/resource/
	staticHandler := http.StripPrefix("/resource/", fileServer )


	// 拦截所有/resource/   进行函数操作
	http.Handle("/resource/", staticHandler)
}


三、请求 r *http.Request

1、请求行的参数

r.URL.Query() 返回一个 map[string][]string

普通和数组参数,是可以的
但是map容器,需要自己手写算法

?name=zhngsan&age=25
&arr=1&arr=2&arr=3
&MyMap[home]=Beijing&MyMap[company]=shanghai




获取url路径
path := r.URL.Path

如果访问是http.HandleFunc("/api/v1/login", apis.API.Login)
这个path是 "/api/v1/login"


2、请求头的参数

headers := r.Header  返回一个 map[string][]string
道理一样


3、请求体的json参数

r.Body

Body io.ReadCloser

自己手写算法,json变成 map[string]interface{}

var params map[string]interface{}
body, _ := ioutil.ReadAll(r.Body)
_ = json.Unmarshal(body, &params)
return params


四、响应 w http.ResponseWriter

1、响应行

设置状态码
w.WriteHeader(http.StatusNotFound)


2、响应头

设置响应的类型
w.Header().Set("Content-Type", "application/json")

3、响应体

str := "啊哈哈哈"
 w.Write([]byte(  str ))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值