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

免费动图制作app京东seo搜索优化

免费动图制作app,京东seo搜索优化,光明区公明街道,wordpress系统付费之前写的《golang实现一个简单的HTTP server》没有包含认证部分 本例给出了支持BasicAuth的实现#xff0c;以及如何在一个项目中导入自己定义的package 编写代码 创建项目所在文件夹 adminhpc-1:~/go$ mkdir auth_http adminhpc-1:~/go$ cd auth_http adminhpc-1:~/go/auth… 之前写的《golang实现一个简单的HTTP server》没有包含认证部分 本例给出了支持BasicAuth的实现以及如何在一个项目中导入自己定义的package 编写代码 创建项目所在文件夹 adminhpc-1:~/go$ mkdir auth_http adminhpc-1:~/go$ cd auth_http adminhpc-1:~/go/auth_http$项目初始化为一个模块,多出了一个go.mod文件 adminhpc-1:~/go/auth_http$ go mod init my_auth go: creating new go.mod: module my_auth adminhpc-1:~/go/auth_http$ adminhpc-1:~/go/auth_http$ cat go.mod module my_authgo 1.18 adminhpc-1:~/go/auth_http$ 补齐代码后的目录结构 adminhpc-1:~/go/auth_http$ tree . ├── go.mod ├── http_rpc_server.go └── utils└── do_auth.go1 directory, 3 files adminhpc-1:~/go/auth_http$ 代码内容 adminhpc-1:~/go/auth_http$ cat http_rpc_server.go package mainimport (fmtlogflagnet/httpencoding/jsonmy_auth/utils )// 定义一个用于接收请求的结构体 type MapPrinter struct{}// 定义一个用于接收请求的方法 func (m *MapPrinter) PrintMap(w http.ResponseWriter, r *http.Request) {if r.Method ! http.MethodPost {http.Error(w, Method not allowed, http.StatusMethodNotAllowed)return}// 检查认证头部信息username, password, ok : r.BasicAuth()if !ok {// 未提供基本身份验证返回 401 Unauthorizedw.Header().Set(WWW-Authenticate, Basic realmRestricted)w.WriteHeader(http.StatusUnauthorized)fmt.Fprintln(w, 401 Unauthorized)return}// 验证用户名和密码if !utils.CheckCredentials(username, password) {// 用户名和密码不匹配返回 401 Unauthorizedw.Header().Set(WWW-Authenticate, Basic realmRestricted)w.WriteHeader(http.StatusUnauthorized)fmt.Fprintln(w, 401 Unauthorized)return}var payload map[string]interface{}err : json.NewDecoder(r.Body).Decode(payload)if err ! nil {http.Error(w, Invalid payload, http.StatusBadRequest)return}fmt.Println(Received payload:)for key, value : range payload {fmt.Printf(%s: %v\n, key, value)}w.WriteHeader(http.StatusOK)w.Write([]byte(Map printed successfully\n)) }func main() {//获取监听端口默认8080port : flag.String(p, 8080, 指定监听端口)// 解析命令行参数flag.Parse()//注册abc-api路由http.HandleFunc(/abc-api, new(MapPrinter).PrintMap)adminhpc-1:~/go/auth_http$ adminhpc-1:~/go/auth_http$ adminhpc-1:~/go/auth_http$ adminhpc-1:~/go/auth_http$ cat utils/do_auth.go package utilsfunc CheckCredentials(username, password string) bool {validUsername : adminvalidPassword : adminreturn username validUsername password validPassword } adminhpc-1:~/go/auth_http$ 一些说明 go mode init package_name是将代码从GOPATH 模式迁移到模块模式。然后使用模块路径来导入其他模块或包golang的项目必须要有 至少一个go文件以package main开头有且仅有一个go文件包含func main()作为程序执行的入口 utils目录下的所有文件(本例中只有do_auth.go一个文件)都以package utils开头表明这些文件都属于utils这个自定义包的组成部分注意utils中的函数如何要被外部函数调用必须以大写字母开头例如本例中的CheckCredentials当要调用utils中的函数的时候 import my_auth/utils,就是由init时候创建的模块加上/再加上自定义的package name调用utils里面的函数的时候使用utils.Xxxxx来调用此时和那个函数具体写在哪个文件中就没有关系了(本例中调用时候就不会出现do_auth这个文件名) 运行 编译出可执行文件 adminhpc-1:~/go/auth_http$ go build -o http_rpc_server adminhpc-1:~/go/auth_http$ adminhpc-1:~/go/auth_http$ file http_rpc_server http_rpc_server: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, Go BuildIDjj_W4SsJdLxNOWHH706-/p8kU3nvIDJ1cRjEIGWFi/752lBQWnErUy3P6gdHgN/2ksEePP3sNj-He57uoCu, not stripped adminhpc-1:~/go/auth_http$ 运行 adminhpc-1:~/go/auth_http$ chmod x http_rpc_server adminhpc-1:~/go/auth_http$ adminhpc-1:~/go/auth_http$ ./http_rpc_server -p 8090 Server is listening on port %s... 8090 验证 不指定auth header 另开终端用curl发送POST请求不带username-password adminhpc-1:~/go/auth_http$ curl -X POST -H Content-Type: application/json -d {key1:value1, key2:value2} http://localhost:8090/abc-api 401 Unauthorized adminhpc-1:~/go/auth_http$ auth header与期望的不匹配 代码中期望用户名和密码为admin/admin故意不匹配 adminhpc-1:~/go/auth_http$ curl -X POST -u admin:password -H Content-Type: application/json -d {key1:value1, key2:value2} http://localhost:8090/abc-api 401 Unauthorized adminhpc-1:~/go/auth_http$ auth header与期望的匹配 匹配期望的用户名密码 adminhpc-1:~/go/auth_http$ curl -X POST -u admin:admin -H Content-Type: application/json -d {key1:value1, key2:value2} http://localhost:8090/abc-api Map printed successfully adminhpc-1:~/go启动server的终端打印 adminhpc-1:~/go/auth_http$ ./http_rpc_server -p 8090 Server is listening on port %s... 8090 Received payload: key1: value1 key2: value2
http://www.pierceye.com/news/518867/

相关文章:

  • 天津网站建设方案托管wordpress 批量删除
  • 网站后台管理系统域名在线设计房屋装修
  • 郑州网站建设工作室wordpress 编辑器字号
  • 内容聚合网站开发教程WordPress文章首页缩进
  • saas云建站平台源码新冠2024中国又要封城了
  • 济南网站建设认可搜点网络滨州网站建设
  • 政务公开及网站建设意见网站的策划方案怎么写
  • 网站培训制度郑州建网站哪个公司好
  • 网站建设优化怎么做微信公众平台开发网站
  • 网站建设的什么是网站建设的第一阶段公司简介概况怎么写
  • 玛伊网站做兼职加入要多少钱装修房子的app软件哪个好
  • 免费空间asp网站公众号编辑器排行榜
  • 鲜花培训网站建设网站建设技术部奖惩制度
  • 国内优秀设计网站站长营销型网站建设 案例
  • 织梦网站维护唐山网站建设哪家专业
  • 网上打字兼职正规网站深圳各区房价一览表
  • 怎样建设网站是什么怎么看网站空间多大
  • 如何备份网站的手机版免费申请微网站
  • 淘宝不允许 网站建设wordpress页面无法编辑器
  • 个人怎么做课程网站seo神马网站推广器
  • 做购物比价的网站有哪些外贸移动商城网站建设
  • 网站开发的特点做直通车任务的网站
  • 分类信息系统网站模板wordpress黑客
  • 推荐一个代做毕业设计的网站云服务器怎么搭建
  • 网站制作计算机电商运营seo
  • 网站关键词分隔符建站用什么工具
  • 广元网站开发兰州电商平台网站建设
  • 网站怎么黑北京广告设计公司排行
  • 番禺网站排名推广优化排名网站开发类标书模板
  • 青海市住房和城乡建设厅网站关于网站建设的合同协议书