golang入门--一个简单的http client
2016-03-17 18:01
190 查看
import ( "fmt" "io/ioutil" "log" "net/http" "net/url" ) func main() { //resp, _ := doGet("http://www.baidu.com") //resp, _ := doPost("http://www.baidu.com", "application/json;charset=utf-8") resp, _ := doPostForm("http://www.baidu.com") defer resp.Body.Close() //go的特殊语法,main函数执行结束前会执行resp.Body.Close() fmt.Println(resp.StatusCode) //有http的响应码输出 if resp.StatusCode == http.StatusOK { //如果响应码为200 body, err := ioutil.ReadAll(resp.Body) //把响应的body读出 if err != nil { //如果有异常 fmt.Println(err) //把异常打印 log.Fatal(err) //日志 } fmt.Println(string(body)) //把响应的文本输出到console } } /** 以GET的方式请求 **/ func doGet(url string) (r *http.Response, e error) { resp, err := http.Get(url) if err != nil { fmt.Println(resp.StatusCode) fmt.Println(err) log.Fatal(err) } return resp, err } /** 以POST的方式请求 **/ func doPost(url string, bodyType string) (r *http.Response, e error) { resp, err := http.Post(url, bodyType, nil) if err != nil { fmt.Println(resp.StatusCode) fmt.Println(err) log.Fatal(err) } return resp, err } /** 以Post表单的方式请求 **/ func doPostForm(urlStr string) (r *http.Response, e error) { v := url.Values{"method": {"get"}, "id": {"1"}} v.Add("name1", "1") v.Add("name2", "2") resp, err := http.PostForm(urlStr, v) if err != nil { fmt.Println(resp.StatusCode) fmt.Println(err) log.Fatal(err) } return resp, err }
看完《Go Web 编程》的前两章就可以开始写代码了。
相关文章推荐
- Socket编程:TCP客户端/服务器应用程序
- 探究TCP
- HTTP服务端接口模拟工具-HttpServerMockTool
- Android 利用发送Intent播放本地视频和网络视频
- C#设计模式——抽象工厂模式(原文转自:http://blog.jobbole.com/78059/)
- 使用XMLHttpRequest 实现http 终止请求和超时
- 服务器网络地址 "TCP://XXX:5022" 无法访问或不存在。请检查网络地址
- iOS开发网络篇之文件下载、大文件下载、断点下载
- 如何在使用 RemoteWebDriver 打开网页的同时获取 Http 状态码
- AFNetWorking 的Header的传值
- 基于Linux的TCP网络编程实例
- Unity 加载网络图片
- Ceph 网络通信源代码分析
- 深度学习caffe代码怎么读 & 添加新网络层
- JavaWeb学习了---web、tomacat、http、
- 几个简单的网络命令(ping、tennet、ssh、netstat)
- 学习TensorFlow,多层卷积神经网络
- 学习TensorFlow,多层卷积神经网络
- 测试协同CS模式下的客户端操作通知时间 采用协议TCP
- tcp的连接与关闭