Go 启动 HTTP 服务接收 post 请求响应数据 太过爱你忘了你带给我的痛 2023-10-11 23:11 33阅读 0赞 #### 阅读目录 #### * Go 启动 HTTP 服务接收 post 请求响应数据 ## Go 启动 HTTP 服务接收 post 请求响应数据 ## package main import ( "encoding/json" "errors" "io/ioutil" "log" "net/http" "runtime/debug" ) type HttpServer struct { server *http.Server // 表示一个HTTP服务器 IsRunning bool // 指示服务器是否正在运行 } type ResMsg struct { Code string `json:"code"` // 响应代码 Data interface{ } `json:"data"` // 响应数据 } type CommonMsg struct { Code string `json:"code"` // 通用消息代码 Data NotifyMsg `json:"data"` // 通用消息数据 } type User struct { UserID string `json:"userId"` // 用户ID UserName string `json:"userName"` // 用户名 UserCode string `json:"userCode"` // 用户代码 OrgName string `json:"orgName"` // 组织名称 OrgCode string `json:"orgCode"` // 组织代码 UapToken string `json:"uap_token"` // UAP令牌 ExpiresIn string `json:"expiresIn"` // 令牌过期时间 } type List struct { AppCode string `json:"appCode"` // 应用代码 AppName string `json:"appName"` // 应用名称 AppURL string `json:"appUrl"` // 应用URL } type NotifyMsg struct { User User `json:"user"` // 用户信息 List []List `json:"list"` // 应用列表 } var httpServer HttpServer func NotifytUserInfo(w http.ResponseWriter, req *http.Request) { defer func() { if r := recover(); r != nil { /* debug.Stack() 是 Go 语言标准库中的一个函数, 用于返回当前 goroutine 的调用栈信息。 它返回一个表示调用栈的字节切片, 其中包含了调用栈上每个函数调用的信息,包括函数名、文件名、行号等。 */ log.Printf("SYSTEM ACTION PANIC: %v, stack: %v", r, string(debug.Stack())) } }() var res ResMsg var msg CommonMsg var err = errors.New("only support POST") if req.Method == "POST" { log.Println("NotifytUserInfo enter") /* ioutil.ReadAll() 是 Go 标准库中的一个函数, 用于从一个可读取对象(如文件或网络连接)中读取所有的数据, 并将其作为字节切片返回。 */ body, _ := ioutil.ReadAll(req.Body) err = json.Unmarshal(body, &msg) if err == nil { // Handle the received data here // ... res.Code = "200" res.Data = "success" resstr, _ := json.Marshal(res) w.Write(resstr) return } res.Code = "500" res.Data = err.Error() resstr, _ := json.Marshal(res) /* Write 方法用于将数据写入 HTTP 响应的主体(response body) 这行代码的作用是将 JSON 格式的响应内容(存储在 resstr 中)作为响应的主体部分, 发送给发起 HTTP 请求的客户端。 */ w.Write(resstr) return } res.Code = "405" res.Data = err.Error() resstr, _ := json.Marshal(msg) w.Write(resstr) } // 启动 HTTP 服务器 func startHttpServer(ip, port string) { if httpServer.IsRunning { return } httpServer.IsRunning = true http.HandleFunc("/notifytUserInfo", NotifytUserInfo) httpServer.server = &http.Server{ Addr: ip + ":" + port, Handler: nil} err := httpServer.server.ListenAndServe() if err != nil { log.Println("Failed to start HTTP server!") } } func main() { ip := "127.0.0.1" port := "8080" startHttpServer(ip, port) } ![在这里插入图片描述][2253004958e144db8ce3e95820d2f909.png] http://127.0.0.1:8080/notifytUserInfo { "code": "123", "data": { "user": { "userId": "123", "userName": "John", "userCode": "ABC", "orgName": "Org1", "orgCode": "ORG1", "uap_token": "token123", "expiresIn": "2023-06-30" }, "list": [ { "appCode": "app1", "appName": "App1", "appUrl": "https://example.com/app1" }, { "appCode": "app2", "appName": "App2", "appUrl": "https://example.com/app2" } ] } } ![在这里插入图片描述][76ae8b15dab3450297bc6e444a9c2d6e.png] [2253004958e144db8ce3e95820d2f909.png]: https://img-blog.csdnimg.cn/2253004958e144db8ce3e95820d2f909.png [76ae8b15dab3450297bc6e444a9c2d6e.png]: https://img-blog.csdnimg.cn/76ae8b15dab3450297bc6e444a9c2d6e.png
相关 HTTP请求与响应:使用Java发送GET/POST请求 在Java中,我们可以使用各种库来发送HTTP GET或POST请求。这里我将展示如何使用Java的HttpURLConnection和OkHttp库进行操作。 1. **H 男娘i/ 2024年09月12日 09:00/ 0 赞/ 17 阅读
相关 Go语言HTTP服务实现GET和POST请求的同时支持 引言 在现代的Web开发中,HTTP服务是构建网络应用程序的基础。而支持GET和POST请求是其中最基本、最常见的功能之一。GET请求用于从服务器获取数据,而POST请求 - 日理万妓/ 2024年04月06日 15:46/ 0 赞/ 31 阅读
相关 delphi 怎么让datasnap接收https的post请求 要让 DataSnap 接收 HTTPS 的 POST 请求,你需要做以下几件事: 1. 在 DataSnap 服务器端启用 HTTPS。这可以通过使用 Indy 库的 T 忘是亡心i/ 2024年03月25日 10:43/ 0 赞/ 42 阅读
相关 Go 启动 HTTP 服务接收 post 请求响应数据 阅读目录 Go 启动 HTTP 服务接收 post 请求响应数据 Go 启动 HTTP 服务接收 post 请求响应数据 package main 太过爱你忘了你带给我的痛/ 2023年10月11日 23:11/ 0 赞/ 34 阅读
相关 java 发送post请求数据要怎么加收_Java Post 数据请求和接收 这两天在做http服务端请求操作,客户端post数据到服务端后,服务端通过request.getParameter()进行请求,无法读取到数据,搜索了一下发现是因为设置为tex 男娘i/ 2022年11月04日 15:23/ 0 赞/ 198 阅读
相关 http post请求 http post请求 代码 import java.io.IOException; import java.util.ArrayList; imp 小咪咪/ 2022年08月20日 14:09/ 0 赞/ 153 阅读
相关 Go如何响应http请求? 在Web应用程序中,每个HTTP事务都由请求(Request)和响应(Response)构成,这次我们讲讲Go如何处理Web中的数据响应。 > 如果想了解Go如果处理Web请 曾经终败给现在/ 2022年01月20日 07:41/ 0 赞/ 394 阅读
相关 java 发送http请求【get、post、post(json数据))】 一、发送Get请求 ublic static String sendGet(String url, String param) { Pri 深碍√TFBOYSˉ_/ 2021年10月15日 13:04/ 0 赞/ 440 阅读
相关 express接收post请求参数 参考:[https://www.jianshu.com/p/34ca30e71494][https_www.jianshu.com_p_34ca30e71494] 官方 桃扇骨/ 2021年08月13日 22:57/ 0 赞/ 452 阅读
还没有评论,来说两句吧...