首页 > 其他分享 >一个用go语言写的简单HttpServer,供大家调用。

一个用go语言写的简单HttpServer,供大家调用。

时间:2022-09-25 10:55:46浏览次数:49  
标签:count HttpServer http name age 调用 context go gin

GET请求(postman):

 

 返回:

 

其实:count的值,每次调用一次,增加1(线程安全的)。

问题:这里的线程安全,你知道是什么意思吗?

===============

Post请求:

 

 返回:

 

 

附:GO语言代码:

 1 package main
 2 import (
 3     "flag"
 4     "fmt"
 5     "github.com/gin-gonic/gin"
 6     "net/http"
 7     "sync"
 8     "sync/atomic"
 9 )
10 
11 var count int32
12 var count2 int32
13 var wg sync.WaitGroup
14 
15 //go build FastGet.go
16 //get(postman):
17 //http://127.0.0.1:6677/user/query?name=kk&age=18
18 //返回:{name:'kk',age:18,count:7}
19 
20 //post(postman):
21 //url: http://127.0.0.1:6677/user/post
22 //method: post
23 //body:urlencoded: name=mike,age=20
24 func main() {
25     fmt.Print("请求详情参见:https://www.cnblogs.com/xiaoyongdata/p/16727412.html")
26     var port string
27     flag.StringVar(&port , "port", "6677", "the author's name")
28 
29     router := gin.Default()
30     router.GET("/user/query/", func(context *gin.Context) {
31         //获取name值
32         age := context.DefaultQuery("age","18")
33         name := context.DefaultQuery("name","mike")
34         //返回值
35         atomic.AddInt32(&count, 1)
36         context.String(http.StatusOK, "{name:'%s',age:%s,count:%d}", name,age,count)
37     })
38 
39     router.POST("/user/post/", func(context *gin.Context) {
40         //获取传递的值
41         name := context.PostForm("name")
42         age := context.DefaultPostForm("age","10")
43         atomic.AddInt32(&count2, 1)
44         //以JSON格式返回
45         context.JSON(http.StatusOK, gin.H{"status":gin.H{"status_code":http.StatusOK,"count":count2},"name":name,"age":age})
46     })
47     router.Run(":"+port)
48 }

 

标签:count,HttpServer,http,name,age,调用,context,go,gin
From: https://www.cnblogs.com/xiaoyongdata/p/16727412.html

相关文章

  • goahead 部分代码抽取学习
    #include"stdafx.h"#include<iostream>usingnamespacestd;typedeftime_tWebsTime;typedefunsignedlongulong;typedefunsignedcharuchar;typedefstruct......
  • winform程序如何调用webapi接口?附源码
    我们开发winform程序时,通常使用传统的三层结构,包括:数据层、业务层、页面层。Form页面调用时,直接new个Service类,实现业务需求。但这种模式有个弊端,就是业务逻辑全部放到了客......
  • golang goroutine协程泄露
      语言级别的并发支持是Go的一大优势,但这个优势也很容易被滥用。通常我们在开始Go并发学习时,常常听别人说,Go的并发非常简单,在调用函数前加上go关键词便可启动g......
  • Google:Andriod 系统前景不容乐观
    据国外媒体报道,相比于谷歌在谷歌网络开发年会GoogleI/O2015上对Andriod系统的乐观,目前Andriod系统在高端智能手机中的市场份额进一步降低,同时Andriod平板电脑也未对消......
  • 【微服务】- 服务调用 - OpenFeign
    服务调用-OpenFeign......
  • golang值传递和引用传递
    Go中所有的参数传递都是值传递,拷贝的都是一个副本。但是,这里分两种情况讨论,引用类型 和 非引用类型。非引用类型(值类型):int,string,float,bool,数组和struct;特点:值类型变量......
  • GoPro 钓鱼 All In One
    GoPro钓鱼AllInOnehttps://www.youtube.com/watch?v=JOGAPRPCWJQ&ab_channel=TheAus知澳refs©xgqfrms2012-2020www.cnblogs.com/xgqfrms发布文章使用:只......
  • 组合测试术语:Pairwise/All-Pairs、OATS(Orthogonal Array Testing Strategy)
    组合测试组合测试(CombinatorialTest)是一种黑盒测试用例生成方法,主要针对多输入参数组合场景。目前业界较流行的两种组合测试方法,一种是Pairwise/All-Pairs,即配对组合。OA......
  • c#调用易语言写的dll出现闪退的情况
    调用方法就不再说了,最近调用一个朋友给的易语言的dll出现了奇怪的情况,第一次调用某个接口正常,第二次就闪退,花了很长时间才解决.按:调用的返回值的时候不能直接调用,......
  • GoLang之ACM控制台输入输出
    转自:https://blog.csdn.net/weixin_52690231/article/details/125436414    ......