广东专业移动网站建设哪家好,响应式门户网站,苏州建设交通学校网站,公司网站可以用个人备案吗文章目录 开启服务开启访问静态文件获取现在时间按时间创建一个空的json文件按时间创建一个固定值的json文件 跨域请求处理输出是json 开启服务
package mainimport (fmtnet/http
)//路由
func handler(w http.ResponseWriter, r *http.Request){fmt.… 文章目录 开启服务开启访问静态文件获取现在时间按时间创建一个空的json文件按时间创建一个固定值的json文件 跨域请求处理输出是json 开启服务
package mainimport (fmtnet/http
)//路由
func handler(w http.ResponseWriter, r *http.Request){fmt.Fprintf(w, hello World!)
}func main(){//路由http.HandleFunc(/, handler)//开启服务http.ListenAndServe(:8091, nil) //port:8091(自定义,注意:要是空闲端口)
}#启动服务
go run main.go这样本地的8091端口就可以访问了
开启访问静态文件 我们这里拿video来举例 package mainimport (fmtnet/http
)func main(){//静态文件访问fs : http.FileServer(http.Dir(./assets))http.Handle(/static/, http.StripPrefix(/static/, fs))//开启服务http.ListenAndServe(:8091, nil)
}按照图上的访问路径(http://localhost:8091/static/video/20231204-134423.mp4) 获取现在时间
package mainimport (fmttime
)func main(){currentTime : time.Now()fmt.Println(当前的时间为,currentTime)
}因为currentTime是time.Time类型所以要想页面输出要进行字符串转换 //获取时间
func getNowTime(w http.ResponseWriter, r *http.Request){currentTime : time.Now()timeString : currentTime.Format(2006-01-02 15:04:05)//2006-01-02 15:04:05只是时间格式化字符串格式fmt.Fprintf(w,timeString)
}至于这个函数上面命名也是如此,就当是net/http路由服务的固定格式便好 注意: Golang函数首字符大写代表着公开(public)小写代表着私有(private) 按时间创建一个空的json文件
package mainimport (fmttime
// encoding/jsonos
)func CreateFileNil(){currentTime : GetTime()fileName : currentTime.Format(2006-01-02_15-04-05) .jsonfile,err : os.Create(./assets/json/fileName)if err ! nil {fmt.Println(JSON编码失败:, err)return}defer file.Close() //defer:表示函数的最后执行(这里是确保最后文件是关闭的)
}func main(){CreateFileNil()
}按时间创建一个固定值的json文件
package mainimport (fmttimeencoding/jsonos
)type Person struct {Name stringAge int
}
//创建一个固定值的json文件
func CreateFileGuDin(){currentTime : GetTime()fileName : currentTime.Format(2006-01-02_15-04-05) .jsonfile,err : os.Create(./assets/json/fileName)if err ! nil {fmt.Println(JSON编码失败:, err)return}defer file.Close()person : Person{Name: Alice, Age: 25}jsonData, err : json.Marshal(person)if err ! nil {fmt.Println(JSON编码失败:, err)return}_, err file.Write(jsonData)if err ! nil {fmt.Println(写入文件失败:, err)return}fmt.Println(JSON文件创建成功:, fileName)
}func main(){CreateFileGuDin()
}跨域请求处理
package mainimport (fmtnet/http
)//路由
func handler(w http.ResponseWriter, r *http.Request){fmt.Fprintf(w, hello World!)
}func main(){//创建一个处理跨域请求的处理器函数corsHandler : func(h http.Handler) http.Handler {return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {// 设置允许跨域的域名w.Header().Set(Access-Control-Allow-Origin, *)// 允许的请求方法w.Header().Set(Access-Control-Allow-Methods, GET, POST, PUT, DELETE, OPTIONS)// 允许的请求头w.Header().Set(Access-Control-Allow-Headers, Content-Type, Authorization)// 如果是预检请求直接返回if r.Method OPTIONS {return}h.ServeHTTP(w, r)})}//路由http.Handle(/, corsHandler(http.HandlerFunc(handler)))//开启服务http.ListenAndServe(:8091, nil)
}
输出是json
package mainimport (fmtnet/httpencoding/json
)type FileDetail struct{NowTime string json:now_timeFileName string json:file_name
}func func_name1(w http.ResponseWriter, r *http.Request){responseData : FileDetail {NowTime:2023_12_04_22_51_30.json,FileName:http://local: port /static/video/20231204-19.mp4}w.Header().Set(Content-Type, application/json)w.WriteHeader(http.StatusOK)json.NewEncoder(w).Encode(responseData)
}func main(){//创建一个处理跨域请求的处理器函数corsHandler : func(h http.Handler) http.Handler {return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {// 设置允许跨域的域名w.Header().Set(Access-Control-Allow-Origin, *)// 允许的请求方法w.Header().Set(Access-Control-Allow-Methods, GET, POST, PUT, DELETE, OPTIONS)// 允许的请求头w.Header().Set(Access-Control-Allow-Headers, Content-Type, Authorization)// 如果是预检请求直接返回if r.Method OPTIONS {return}h.ServeHTTP(w, r)})}http.Handle(/test, corsHandler(http.HandlerFunc(func_name1)))//开启服务http.ListenAndServe(:8091, nil)
}