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

做彩票网站违法吗微信支付 网站开发

做彩票网站违法吗,微信支付 网站开发,临汾尚世互联网站建设,x网站免费模板学习记录 1 使用中间件1.1 测试一下1.2 push代码 2 URI 中的斜杆2.1 StrictSlash2.2 兼容 POST 请求 1 使用中间件 代码中存在重复率很高的代码 w.Header().Set(Content-Type, text/html; charsetutf-8)统一对响应做处理的#xff0c;我们可以使用中… 学习记录 1 使用中间件1.1 测试一下1.2 push代码 2 URI 中的斜杆2.1 StrictSlash2.2 兼容 POST 请求 1 使用中间件 代码中存在重复率很高的代码 w.Header().Set(Content-Type, text/html; charsetutf-8)统一对响应做处理的我们可以使用中间件来做 使用中间件后的代码 package mainimport (fmtnet/httpgithub.com/gorilla/mux )func homeHandler(w http.ResponseWriter, r *http.Request) {fmt.Fprint(w, h1Hello, 欢迎来到 goblog/h1) }func aboutHandler(w http.ResponseWriter, r *http.Request) {fmt.Fprint(w, 此博客是用以记录编程笔记如您有反馈或建议请联系 a href\mailto:summerexample.com\summerexample.com/a) }func notFoundHandler(w http.ResponseWriter, r *http.Request) {w.WriteHeader(http.StatusNotFound)fmt.Fprint(w, h1请求页面未找到 :(/h1p如有疑惑请联系我们。/p) }func articlesShowHandler(w http.ResponseWriter, r *http.Request) {vars : mux.Vars(r)id : vars[id]fmt.Fprint(w, 文章 IDid) }func articlesIndexHandler(w http.ResponseWriter, r *http.Request) {fmt.Fprint(w, 访问文章列表) }func articlesStoreHandler(w http.ResponseWriter, r *http.Request) {fmt.Fprint(w, 创建新的文章) }func forceHTMLMiddleware(next http.Handler) http.Handler {return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {// 1. 设置标头w.Header().Set(Content-Type, text/html; charsetutf-8)// 2. 继续处理请求next.ServeHTTP(w, r)}) }func main() {router : mux.NewRouter()router.HandleFunc(/, homeHandler).Methods(GET).Name(home)router.HandleFunc(/about, aboutHandler).Methods(GET).Name(about)router.HandleFunc(/articles/{id:[0-9]}, articlesShowHandler).Methods(GET).Name(articles.show)router.HandleFunc(/articles, articlesIndexHandler).Methods(GET).Name(articles.index)router.HandleFunc(/articles, articlesStoreHandler).Methods(POST).Name(articles.store)// 自定义 404 页面router.NotFoundHandler http.HandlerFunc(notFoundHandler)// 中间件强制内容类型为 HTMLrouter.Use(forceHTMLMiddleware)// 通过命名路由获取 URL 示例homeURL, _ : router.Get(home).URL()fmt.Println(homeURL: , homeURL)articleURL, _ : router.Get(articles.show).URL(id, 1)fmt.Println(articleURL: , articleURL)http.ListenAndServe(:3000, router) }这段代码定义了一个名为 forceHTMLMiddleware 的函数它是一个中间件函数接受一个 http.Handler 类型的参数 h并返回一个经过处理后的 http.Handler。 让我们逐步解释这段代码的功能 函数定义 func forceHTMLMiddleware(h http.Handler) http.Handler { ... }这是一个函数定义它接受一个 http.Handler 类型的参数 h表示要执行的下一个处理程序handler并返回一个经过处理后的 http.Handler。 中间件功能 这个中间件的功能是强制将响应的内容类型设置为 HTML 格式并指定字符集为 UTF-8。w.Header().Set(Content-Type, text/html; charsetutf-8)在处理请求之前通过 w.Header().Set 方法设置响应头中的 Content-Type 字段为 text/html; charsetutf-8表示响应内容为 HTML 格式并且字符集为 UTF-8。h.ServeHTTP(w, r)然后调用传入的下一个处理程序 h 的 ServeHTTP 方法继续处理请求并生成响应。 返回处理程序 return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { ... })返回一个匿名函数该函数实现了 http.Handler 接口的 ServeHTTP 方法用于处理请求并设置响应头。 通过使用这个中间件函数您可以确保每个经过该中间件的请求的响应内容类型都被强制设置为 HTML 格式并且字符集为 UTF-8。这有助于确保一致的响应格式和字符编码。您可以将这个中间件应用于您的 HTTP 处理程序链中以实现统一的响应处理逻辑。 1.1 测试一下 localhost:3000/about 1.2 push代码 //有时因为github访问受限的原因Push失败可开加速器后重新push fatal: unable to access https://github.com/SGY321/goblog.git/: Failed to connect to github.com port 443 after 21179 ms: Couldnt connect to server git add . git commit -m “使用中间件” git push 2 URI 中的斜杆 访问以下两个链接 localhost:3000/about localhost:3000/about/ 有 / 的链接会报 404 错误 希望 URL 后面是否加斜杆的情况下皆使用同一个返回结果 2.1 StrictSlash Gorilla Mux 提供了一个 StrictSlash(value bool) 函数 slash中文斜杠 浏览器再次访问 localhost:3000/about/ 显示成功 可以看到当请求 about/ 时产生了两个请求第一个是 301 跳转第二个是跳转到的 about 去掉斜杆的链接。 浏览器在处理 301 请求时会缓存起来。后续的 about/ 浏览器都会自动去请求 about 链接也就是说两次请求只会在第一次的时候发生。 这个解决方案看起来不错然而有一个严重的问题 —— 当请求方式为 POST 的时候遇到服务端的 301 跳转将会变成 GET 方式。很明显这并非所愿我们需要一个更好的方案。 2.2 兼容 POST 请求 还原上面的修改 git checkout .写一个函数把 Gorilla Mux 包起来在这个函数中我们先对进来的请求做处理然后再传给 Gorilla Mux 去解析。 . . . func removeTrailingSlash(next http.Handler) http.Handler {return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {// 1. 除首页以外移除所有请求路径后面的斜杆if r.URL.Path ! / {r.URL.Path strings.TrimSuffix(r.URL.Path, /)}// 2. 将请求传递下去next.ServeHTTP(w, r)}) }func main() {...http.ListenAndServe(:3000, removeTrailingSlash(router)) }
http://www.dnsts.com.cn/news/228674.html

相关文章:

  • 网站建设评估开一个网站要花多少钱
  • 内蒙古建设协会网站crm客户管理系统登陆
  • 全国知名网站排名网站商城怎么做app
  • 网站二级域名怎么做龙华网站制作要多少钱
  • 怎样自己做网站小程序怎么做电影网站
  • wordpress4.9.6云主机 网站 多个二级域名 seo优化
  • 怎么做网站弹窗通知国外创意海报设计网站
  • WordPress 网站小图标wordpress 开发小程序
  • 做网站有哪些公司好哪些网站是专做合租的
  • 重庆专业网站营销263企业邮箱腾讯登录入口
  • 电商网站对比镇江高端网站建设工作室
  • 合肥做淘宝网站北京做网站费用
  • 惠州网站建设优化wordpress最近怎么又是5.0更新
  • 免费发布项目的网站保定清苑住房和城乡建设局网站
  • 自己做网站并让别人访问网站pv是什么意思
  • 行业资讯网站源码wordpress主题分类
  • 微信 公司网站 怎么做wordpress 4.6.1 中文
  • 江阴做网站个人电影网站备案
  • 邯郸wap网站建设费用电脑系统怎么重新装wordpress
  • vs2010做网站时间控件动易企业网站
  • p2p网贷网站开发app运营方案策划
  • 河南省建设厅职称网站南昌市经济技术开发区属于哪个区
  • 东莞建站海珠区建设和水务局网站
  • wordpress英文仿站教程新类型的网站
  • 织梦网站tel标签公司做网站费用账务处理
  • 网站后台中文模板wordpress 视频显示
  • 网站外链建设与文章发布规范深圳手机网站建设价格低
  • 株洲网站建设的公司微信微网站开发价格
  • wordpress网站维护页面模板中国机械加工网app
  • 长沙百度网站推广wordpress能导入多少产品