Go语言服务器开发实现最简单HTTP的GET与POST接口

本文实例讲述了Go语言服务器开发实现最简单HTTP的GET与POST接口。分享给大家供大家参考。具体分析如下:

Go语言提供了http包,可以很轻松的开发http接口。以下为示例代码:

代码如下:

package webserver 
 
import ( 
    "encoding/json" 
    "fmt" 
    "net/http" 
    "time" 

 
func WebServerBase() { 
    fmt.Println("This is webserver base!") 
 
    //第一个参数为客户端发起http请求时的接口名,第二个参数是一个func,负责处理这个请求。 
    http.HandleFunc("/login", loginTask) 
 
    //服务器要监听的主机地址和端口号 
    err := http.ListenAndServe("192.168.1.27:8081", nil) 
 
    if err != nil { 
        fmt.Println("ListenAndServe error: ", err.Error()) 
    } 

 
func loginTask(w http.ResponseWriter, req *http.Request) { 
    fmt.Println("loginTask is running...") 
 
    //模拟延时 
    time.Sleep(time.Second * 2) 
 
    //获取客户端通过GET/POST方式传递的参数 
    req.ParseForm() 
    param_userName, found1 := req.Form["userName"] 
    param_password, found2 := req.Form["password"] 
 
    if !(found1 && found2) { 
        fmt.Fprint(w, "请勿非法访问") 
        return 
    } 
 
    result := NewBaseJsonBean() 
    userName := param_userName[0] 
    password := param_password[0] 
 
    s := "userName:" + userName + ",password:" + password 
    fmt.Println(s) 
 
    if userName == "zhangsan" && password == "123456" { 
        result.Code = 100 
        result.Message = "登录成功" 
    } else { 
        result.Code = 101 
        result.Message = "用户名或密码不正确" 
    } 
 
        //向客户端返回JSON数据 
    bytes, _ := json.Marshal(result) 
    fmt.Fprint(w, string(bytes)) 
}

NewBaseJsonBean用于创建一个struct对象:

代码如下:

package webserver 
 
type BaseJsonBean struct { 
    Code    int         `json:"code"` 
    Data    interface{} `json:"data"` 
    Message string      `json:"message"` 

 
func NewBaseJsonBean() *BaseJsonBean { 
    return &BaseJsonBean{} 
}

希望本文所述对大家的Go语言程序设计有所帮助。

(0)

相关推荐

  • 利用Go语言初步搭建一个web应用的教程

    1.Abstract 在学习web开发的过程中会遇到很多困难,因此写了一篇类似综述类的文章.作为路线图从web开发要素的index出发来介绍golang开发的学习流程以及Example代码. 在描述中多是使用代码来描述使用方法不会做过多的说明.最后可以方便的copy代码来实现自己的需求. 本文适应对象: 对web开发有一定经验的人 能够灵活使用ajax的人(至少懂得前后分离) golang web 开发有一定了解,至少略读过一些golang web开发的书籍 看完本文之后您会收获: golang

  • Go语言Web编程实现Get和Post请求发送与解析的方法详解

    本文实例讲述了Go语言Web编程实现Get和Post请求发送与解析的方法.分享给大家供大家参考,具体如下: 这是一篇入门文章,通过一个简单的例子介绍Golang的Web编程主要用到的技术. 文章结构包括: 1. Client-Get 请求 2. Client-Post 请求 3. Server 处理 Get 和 Post 数据 在数据的封装中,我们部分采用了json,因而本文也涉及到Golang中json的编码和解码. 一.Client-Get 复制代码 代码如下: package main i

  • Go语言实现简单Web服务器的方法

    本文实例讲述了Go语言实现简单Web服务器的方法.分享给大家供大家参考.具体分析如下: 包 http 通过任何实现了 http.Handler 的值来响应 HTTP 请求: package http type Handler interface { ServeHTTP(w ResponseWriter, r *Request) } 在这个例子中,类型 Hello 实现了 http.Handler. 注意: 这个例子无法在基于 web 的指南用户界面运行.为了尝试编写 web 服务器,可能需要安装

  • 利用Go语言搭建WebSocket服务端方法示例

    Go 搭建一个简单 WebSocket 服务端代码例子 test.go, 如下: package main import ( "fmt" "log" "net/http" "golang.org/x/net/websocket" ) func Echo(ws *websocket.Conn) { var err error for { var reply string if err = websocket.Message.Re

  • Go语言使用HTTP包创建WEB服务器的方法

    本文实例讲述了Go语言使用HTTP包创建WEB服务器的方法.分享给大家供大家参考,具体如下: 在Golang中写一个http web服务器大致是有两种方法: 1 使用net包的net.Listen来对端口进行监听 2 使用net/http包 这里是讨论如何使用net/http包创建一个web服务器 net/http请求提供了HTTP客户端和服务端的具体实现 http客户端 先看到的是Get,Post,PostForm三个函数.这三个函数直接实现了http客户端 复制代码 代码如下: import

  • Go语言实现简单的一个静态WEB服务器

    学习Go语言的一些感受,不一定准确. 假如发生战争,JAVA一般都是充当航母战斗群的角色. 一旦出动,就是护卫舰.巡洋舰.航母舰载机.预警机.电子战飞机.潜艇等等 浩浩荡荡,杀将过去. (JVM,数十个JAR包,Tomcat中间件,SSH框架,各种配置文件...天生就是重量级的,专为大规模作战) 而GO语言更像F35战斗轰炸机 单枪匹马,悄无声息,投下炸弹然后走人. 专属轰炸机,空战也会一点点. 实在搞不定,就叫它大哥F22. (GO是编译型语言,不需要依赖,不需要虚拟机,可以调用C代码并且它足

  • go语言实现通过FTP库自动上传web日志

    因为平时管理的web服务器都是VM服务器,为节省硬盘空间,一般给虚拟机分配的硬盘空间都比较小,只有8G,因为,保存不了多少日志,所以每天都需要把每台WEB日志转移到一个硬盘比较大的服务器上,然后再使用NBU集中备份,本程序主要使用go语言实现实现将web日志通过FTP自动上传FTP服务器,使用了filepath.Walk遍历日志目录及第三方纯go库"github.com/jlaffaye/ftp",而日志VM本地存储路径格式是 /var/log/weblog/www.domainNam

  • Go语言实现的web爬虫实例

    本文实例讲述了Go语言实现的web爬虫方法.分享给大家供大家参考.具体分析如下: 这里使用 Go 的并发特性来并行执行 web 爬虫. 修改 Crawl 函数来并行的抓取 URLs,并且保证不重复. 复制代码 代码如下: package main import (     "fmt" ) type Fetcher interface {         // Fetch 返回 URL 的 body 内容,并且将在这个页面上找到的 URL 放到一个 slice 中.     Fetch(

  • golang基于websocket实现的简易聊天室程序

    本文实例讲述了golang基于websocket实现的简易聊天室.分享给大家供大家参考,具体如下: 先说点无关的,最近忙于工作没有更新博客,今天休息顺便把golang websocket研究了一下,挺好玩的,写了一个聊天室,分享给大家. websocket包 : code.google.com/p/go.net/websocket 文档 : http://go.pkgdoc.org/code.google.com/p/go.net/websocket 首先安装websocket包 复制代码 代码

  • 解决Golang在Web开发时前端莫名出现的空白换行

    问题: 在使用Golang做Web开发时,有时候渲染出来的模板在前台显示时会出现一些奇怪的空白换行,具体特征就是查看css样式表并没有相关定义的空白部分. 分析: 查看出现问题页面的网页源代码,复制空白换行部分转码为Unicode编码,发现其中包含了\u2028这样的字符[图一].  [图一] 另外,直接在浏览器检查里边的html选择Edit as html,也可发现在空白处存在小红点,鼠标移上会直接显示该字符是\u2028[图二].查阅资料发现,这样的换行符在JavaScript中并不支持.

  • Go语言实现的一个简单Web服务器

    Web是基于http协议的一个服务,Go语言里面提供了一个完善的net/http包,通过http包可以很方便的就搭建起来一个可以运行的Web服务.同时使用这个包能很简单地对Web的路由,静态文件,模版,cookie等数据进行设置和操作. http包建立Web服务器 复制代码 代码如下: package main import (     "fmt"     "net/http"     "strings"     "log"

随机推荐