分享
  1. 首页
  2. 文章

Go语言_HTTP包

yatere · · 2650 次点击 · · 开始浏览
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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

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

2 使用net/http包

http客户端

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

net/http请求提供了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)
 }
}

clip_image001

如何创建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)




有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:yatere

查看原文:Go语言_HTTP包

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
2650 次点击
暂无回复
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏