当前位置: 首页 > news >正文

怎么做网站公众号珠海市品牌网站建设平台

怎么做网站公众号,珠海市品牌网站建设平台,外企网站建设公司排名,网络工程是学啥的介绍 Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API#xff0c;性能要好得多#xff0c;多亏了 httprouter#xff0c;速度提高了 40 倍。 如果您需要性能和良好的生产力#xff0c;您一定会喜欢 Gin。 安装 go get -u github.com/gin-gonic/g…介绍 Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API性能要好得多多亏了 httprouter速度提高了 40 倍。 如果您需要性能和良好的生产力您一定会喜欢 Gin。 安装 go get -u github.com/gin-gonic/gin 快速开始 package mainimport (github.com/gin-gonic/gin )func main() {r : gin.Default()r.GET(/ping, func(c *gin.Context) {c.JSON(200, gin.H{message: pong,})})r.Run() // 监听并在 0.0.0.0:8080 上启动服务 } 接受请求参数 公共部分 package mainimport (github.com/gin-gonic/ginnet/http )func main() {router : gin.Default()//调用方法router.Run(:8080) } get请求 获取路径上数据post一样 使用gin.Context.Query(参数名)获取 func main() {router : gin.Default()testGetUrl(router)router.Run(:8080) } func testGetUrl(router *gin.Engine) {router.GET(/getUrl, func(c *gin.Context) {// 获取参数值name : c.Query(name)age : c.Query(age)// 返回响应c.JSON(http.StatusOK, gin.H{name: name,age: age,})}) } 获取路由参数post一样 package mainimport (github.com/gin-gonic/ginionet/httpnet/urlos )func main() {router : gin.Default()testRouteParams(router)router.Run(:8080) } func testRouteParams(router *gin.Engine) {router.GET(/routeParams/:name/:age, func(c *gin.Context) {// 获取参数值name : c.Param(name)age : c.Param(age)// 返回响应c.JSON(http.StatusOK, gin.H{name: name,age: age,})}) } 获取cookiepost一样 package mainimport (github.com/gin-gonic/ginionet/httpnet/urlos )func main() {router : gin.Default()testCookies(router)router.Run(:8080) } func testCookies(router *gin.Engine) {router.GET(/cookies, func(c *gin.Context) {// 获取参数值name, _ : c.Cookie(name)age, _ : c.Cookie(age)// 返回响应c.JSON(http.StatusOK, gin.H{name: name,age: age,})}) } 获取表单参数post一样 func main() {router : gin.Default()testGetForm(router)router.Run(:8080) } func testGetForm(router *gin.Engine) {router.GET(/getForm, func(c *gin.Context) {var form User// 在这种情况下将自动选择合适的绑定if c.ShouldBind(form) nil {// 返回响应c.JSON(http.StatusOK, gin.H{name: form.Name,age: form.Age,})}}) } 获取请求头post一样 func main() {router : gin.Default()testGetHeader(router)router.Run(:8080) } func testGetHeader(router *gin.Engine) {router.GET(/getHeader, func(c *gin.Context) {// 获取参数值name : c.GetHeader(name)age : c.GetHeader(age)contentType : c.GetHeader(Content-Type)// 返回响应c.JSON(http.StatusOK, gin.H{name: name,age: age,contentType: contentType,})}) } post请求 获取请求体数据 和post表单一样  func main() {router : gin.Default()testPostForm(router)router.Run(:8080) } func testPostForm(router *gin.Engine) {router.POST(/postForm, func(c *gin.Context) {var form User// 在这种情况下将自动选择合适的绑定if c.ShouldBind(form) nil {// 返回响应c.JSON(http.StatusOK, gin.H{name: form.Name,age: form.Age,})}}) } 文件上传下载 上传单个文件 package mainimport (github.com/gin-gonic/ginnet/http )func main() {router : gin.Default()testUpload(router)router.Run(:8080) } func testUpload(router *gin.Engine) {// 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)router.MaxMultipartMemory 8 20 // 8 MiBrouter.POST(/upload, func(c *gin.Context) {// 单文件file, _ : c.FormFile(file)dst : file.Filename// 上传文件至指定的完整文件路径c.SaveUploadedFile(file, dst)// 返回响应c.JSON(http.StatusOK, gin.H{name: file.Filename,})}) } 上传多个文件 package mainimport (github.com/gin-gonic/ginnet/http )func main() {router : gin.Default()testUploadMany(router)router.Run(:8080) } func testUploadMany(router *gin.Engine) {// 为 multipart forms 设置较低的内存限制 (默认是 32 MiB)router.MaxMultipartMemory 8 20 // 8 MiBrouter.POST(/uploadMany, func(c *gin.Context) {// Multipart formform, _ : c.MultipartForm()fileNames : make([]string, 0)files : form.File[fileList]for _, file : range files {// 上传文件至指定目录c.SaveUploadedFile(file, filedir/file.Filename)fileNames append(fileNames, file.Filename)}// 返回响应c.JSON(http.StatusOK, gin.H{name: fileNames,})}) } 下载文件  package mainimport (github.com/gin-gonic/ginionet/httpnet/urlos )func main() {router : gin.Default()testDownload(router)router.Run(:8080) } func testDownload(router *gin.Engine) {router.POST(/download, func(c *gin.Context) {// 获取文件路径targetFileName : 照片1.pngfilePath : filedir/ targetFileName// 检查文件是否存在_, err : os.Stat(filePath)if os.IsNotExist(err) {c.String(http.StatusNotFound, File not found)return}//中文名称会乱码导致下载失败所以需要编码name : url.QueryEscape(targetFileName)// 设置响应头指定文件名和内容类型c.Header(Content-Disposition, attachment; filenamename)c.Header(Content-Type, application/octet-stream)// 打开文件file, err : os.Open(filePath)if err ! nil {c.String(http.StatusInternalServerError, Error opening file)return}defer file.Close()// 将文件内容写入响应体_, err io.Copy(c.Writer, file)if err ! nil {c.String(http.StatusInternalServerError, Error copying file)return}}) } 由于是postman下载的没法解析为中文用浏览器下载就没问题了 日志 func main() {// 禁用控制台颜色将日志写入文件时不需要控制台颜色。gin.DisableConsoleColor()// 记录到文件。f, _ : os.Create(gin.log)gin.DefaultWriter io.MultiWriter(f)// 如果需要同时将日志写入文件和控制台请使用以下代码。// gin.DefaultWriter io.MultiWriter(f, os.Stdout)router : gin.Default()router.GET(/ping, func(c *gin.Context) {c.String(200, pong)})router.Run(:8080) } 路由组 func main() {router : gin.Default()// 简单的路由组: v1v1 : router.Group(/v1){v1.POST(/login, loginEndpoint)v1.POST(/submit, submitEndpoint)v1.POST(/read, readEndpoint)}// 简单的路由组: v2v2 : router.Group(/v2){v2.POST(/login, loginEndpoint)v2.POST(/submit, submitEndpoint)v2.POST(/read, readEndpoint)}router.Run(:8080) } 运行多个服务 package mainimport (lognet/httptimegithub.com/gin-gonic/gingolang.org/x/sync/errgroup )var (g errgroup.Group )func router01() http.Handler {e : gin.New()e.Use(gin.Recovery())e.GET(/, func(c *gin.Context) {c.JSON(http.StatusOK,gin.H{code: http.StatusOK,error: Welcome server 01,},)})return e }func router02() http.Handler {e : gin.New()e.Use(gin.Recovery())e.GET(/, func(c *gin.Context) {c.JSON(http.StatusOK,gin.H{code: http.StatusOK,error: Welcome server 02,},)})return e }func main() {server01 : http.Server{Addr: :8080,Handler: router01(),ReadTimeout: 5 * time.Second,WriteTimeout: 10 * time.Second,}server02 : http.Server{Addr: :8081,Handler: router02(),ReadTimeout: 5 * time.Second,WriteTimeout: 10 * time.Second,}g.Go(func() error {return server01.ListenAndServe()})g.Go(func() error {return server02.ListenAndServe()})if err : g.Wait(); err ! nil {log.Fatal(err)} } 重定向 HTTP 重定向很容易。 内部、外部重定向均支持。 r.GET(/test, func(c *gin.Context) {c.Redirect(http.StatusMovedPermanently, http://www.google.com/) })通过 POST 方法进行 HTTP 重定向。请参考 issue#444 r.POST(/test, func(c *gin.Context) {c.Redirect(http.StatusFound, /foo) })路由重定向使用 HandleContext r.GET(/test, func(c *gin.Context) {c.Request.URL.Path /test2r.HandleContext(c) }) r.GET(/test2, func(c *gin.Context) {c.JSON(200, gin.H{hello: world}) })
http://www.w-s-a.com/news/76736/

相关文章:

  • 什么是a站如何在12366网站上做实名认证
  • 斗蟋蟀网站建设谭谭心怎么建设网站
  • 优秀网站开发商郑州网站建设套餐
  • 做伤残鉴约号网站购物网站建设新闻
  • 黄江网站建设公司自己房子做民宿挂什么网站
  • 手游网站做cpc还是cpm广告号宣武郑州阳网站建设
  • vs连接数据库做网站建立网站
  • 电商网站设计图片素材p2p网站建设石家庄
  • 莲塘网站建设如何文字推广一个婚恋网站
  • 医院网站建设工作汇报WordPress不发邮件了
  • 怎么做外语网站个人网页设计作品ps
  • 网站原型怎么做vps如何建两个网站
  • 商城网站建设源码嘉兴seo计费管理
  • 城乡建设网站证件查询系统wordpress 时间代码
  • php网站建设 关键技术做网站哪家正规
  • 网站开发用什么写得比较好谷歌的英文网站
  • 青岛网站建设公司在哪vivo手机商城
  • 兼职刷客在哪个网站做哪个网站做淘宝客
  • 眼科医院网站开发网络营销特点是什么
  • 提交网站给百度增加wordpress插件
  • 网站建设企业官网体验版是什么Wordpress哪个模板最快
  • 美丽说网站模板湖北可以做网站方案的公司
  • 北京西站进站最新规定建设网站的提成是多少
  • wordpress站点如何加速网站建设描述怎么写
  • 如何免费建造网站免费vi模板网站
  • 商丘做网站多少钱扬州大发网站建设
  • 网站建设哪家性价比高自己做项目的网站
  • 成立一个网站济宁营销型网站建设
  • 南通购物网站建设设计类平台网站
  • 专业网站建设咨询thinkphp网站源码下载