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 (
“fmt”
“net/http”
“io/ioutil”
)
func main() {
response,_ := http.Get(“http://www.baidu.com”)
defer response.Body.Close()
body,_ := ioutil.ReadAll(response.Body)
fmt.Println(string(body))
}除了使用这三个函数来建立一个简单客户端,还可以使用:http.Client和http.NewRequest来模拟请求
复制代码 代码如下:package main
import (
“net/http”
“io/ioutil”
“fmt”
)
func main() {
client := &http.Client{}
reqest, _ := http.NewRequest(“GET”, “http://www.baidu.com”, nil)
reqest.Header.Set(“Accept”,”text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8″)
reqest.Header.Set(“Accept-Charset”,”GBK,utf-8;q=0.7,*;q=0.3″)
reqest.Header.Set(“Accept-Encoding”,”gzip,deflate,sdch”)
reqest.Header.Set(“Accept-Language”,”zh-CN,zh;q=0.8″)
reqest.Header.Set(“Cache-Control”,”max-age=0″)
reqest.Header.Set(“Connection”,”keep-alive”)
response,_ := client.Do(reqest)
if response.StatusCode == 200 {
body, _ := ioutil.ReadAll(response.Body)
bodystr := string(body);
fmt.Println(bodystr)
}
}如何创建web服务端?http包封装地非常bt,只需要两行!!:复制代码 代码如下:package main
import (
“net/http”
)
func SayHello(w http.ResponseWriter, req *http.Request) {
w.Write([]byte(“Hello”))
}
func main() {
http.HandleFunc(“/hello”, SayHello)
http.ListenAndServe(“:8001”, nil)}
进行端口的监听:http.ListenAndServe(“:8001”, nil)注册路径处理函数:http.HandleFunc(“/hello”, 免费云主机域名SayHello)处理函数:func SayHello(w http.ResponseWriter, req *http.Request)golang服务器的效率怎样呢?golang服务端的效率确实没有node.js高,几乎是它的一半。但话说回来,如果一些并发量不是很大的site,还是可以使用golang做服务器的。
以上就是“Go语言中如何利用HTTP包创建WEB服务器”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注百云主机行业资讯频道。

相关推荐: Python进程池与进程锁实例分析

本篇内容主要讲解“Python进程池与进程锁实例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python进程池与进程锁实例分析”吧!上一章节关于进程的问题我们提到过,进程创建太多的情况下就会对资源消耗过大。为…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 04/18 15:45
下一篇 04/18 15:45

相关推荐