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

哪个网站可以做试卷上海专业做网站的

哪个网站可以做试卷,上海专业做网站的,网络营销的步骤和流程,深圳外包公司网站学习记录 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.w-s-a.com/news/521244/

相关文章:

  • 彩票网站建设需要什么聊城网站建设首选天成网络
  • 安徽建设工程网站wordpress标签云代码
  • 推荐佛山顺德网站建设手机网站建设域名空间
  • 电子商务网站建设策划书例子企业官网用什么cms系统
  • 网站栏目设计怎么写平面设计接单报价表
  • 做网站美工要学什么网站推广的方法包括
  • 哪个网站可以做笔译兼职wordpress加表单
  • 百度站内搜索 wordpress微餐饮建站费用
  • 用什么做网站的访问量统计制作手工作品
  • 微信公众号搭建网站河南卫生基层系统网站建设
  • steam账号注册网站重庆手机版建站系统哪家好
  • 中新生态城建设局门户网站wordpress云盘视频播放
  • 大型网站开发基本流程wordpress记录用户搜索
  • 云服务器安装win系统做网站wordpress边栏扩大尺寸
  • 网站开发面试自我介绍软件下载网站如何建设
  • 可以做翻译任务的网站陕西省建设厅八大员证
  • 昆明 网站推广重庆网页优化seo公司
  • 网站排名下降怎么上去设计一套app页面多少钱
  • 专门用来查找网址的网站查公司名字是否被注册
  • 自己创建网站教程河南省建设厅官方网站李学军
  • 一个网站需要多少容量怎样免费设计网站建设
  • 建设工程交易中心网站12306的网站是哪个公司做的
  • 建设网站经营范围自己给公司做网站
  • 河北省住房建设厅政务网站网络营销推广的岗位职责有哪些
  • 上海网站建设优化价格孝义做网站的公司
  • 哪个公司网站做的最好义乌 网站 制作
  • 百度站长工具综合查询wordpress 上传pdf
  • 旅游短租公寓网站建设深圳龙岗招聘网
  • 做海淘是在哪个网站网络查控系统设计方案
  • o2o网站建设代理商微信公众号开发文档