GO http

日期: 2019-12-15 03:18 浏览次数 :

本文实例讲述了Go语言使用HTTP包创建WEB服务器的方法。分享给大家供大家参考,具体如下:

在Golang中写一个http web服务器大致是有两种方法:

本文实例讲述了Go语言Web编程实现Get和Post请求发送与解析的方法。分享给大家供大家参考,具体如下:

在Golang中写一个http web服务器大致是有两种方法:

1 使用net包的net.Listen来对端口进行监听

这是一篇入门文章,通过一个简单的例子介绍Golang的Web编程主要用到的技术。

GO http。1 使用net包的net.Listen来对端口进行监听

2 使用net/http包

文章结构包括:

2 使用net/http包

先看到的是Get,Post,PostForm三个函数。这三个函数直接实现了http客户端

  1. Client-Get 请求
  2. Client-Post 请求
  3. Server 处理 Get 和 Post 数据

这里是讨论如何使用net/http包创建一个web服务器

import (
"fmt"
"net/http"
"io/ioutil"
)

在数据的封装中,我们部分采用了json,因而本文也涉及到Golang中json的编码和解码。

net/http请求提供了HTTP客户端和服务端的具体实现

func main() {
response,_ := http.Get("http://www.baidu.com")
defer response.Body.Close()
body,_ := ioutil.ReadAll(response.Body)
fmt.Println(string(body))
}

一、Client-Get

http客户端

除了使用这三个函数来建立一个简单客户端,还可以使用:
http.Client和http.NewRequest来模拟请求

复制代码 代码如下:

先看到的是Get,Post,PostForm三个函数。这三个函数直接实现了http客户端

package main

package main
import (
        "fmt"
        "net/url"
        "net/http"
        "io/ioutil"
        "log"
)
func main() {
        u, _ := url.Parse("")
        q := u.Query()
        q.Set("username", "user")
        q.Set("password", "passwd")
        u.RawQuery = q.Encode()
        res, err := http.Get(u.String());
        if err != nil {
              log.Fatal(err) return
        }
        result, err := ioutil.ReadAll(res.Body)
        res.Body.Close()
        if err != nil {
              log.Fatal(err) return
        }
        fmt.Printf("%s", result)
}

复制代码 代码如下:

import (
"net/http"
"io/ioutil"
"fmt"
)

二、Client-Post

import (
    "fmt"
    "net/http"
    "io/ioutil"
)
func main() {
    response,_ := http.Get("")
    defer response.Body.Close()
    body,_ := ioutil.ReadAll(response.Body)
    fmt.Println(string(body))
}

func main() {
client := &http.Client{}
reqest, _ := http.NewRequest("GET", "http://www.baidu.com", nil)

复制代码 代码如下: