golang入门--一个简单的http client
看完《Go Web 编程》的前两章就可以开始写代码了。
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 }
golang入门--一个简单的http client的更多相关文章
- 2,turicreate入门 - 一个简单的回归模型
turicreate入门系列文章目录 1,turicreate入门 - jupyter & turicreate安装 2,turicreate入门 - 一个简单的回归模型 3,turicrea ...
- 参考MySQL Internals手册,使用Golang写一个简单解析binlog的程序
GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. MySQL作为最流行的开源关系型数据库,有大量的拥趸.其生态已经相当完善,各项特性在圈内都有大量研究.每次新特性发布,都会 ...
- golang开发一个简单的grpc
0.1.索引 https://waterflow.link/articles/1665674508275 1.什么是grpc 在 gRPC 中,客户端应用程序可以直接调用不同机器上的服务器应用程序上的 ...
- golang 创建一个简单的广播echo服务器
package main; import ( "net" "fmt" "bufio" ) //里面的代码部分参考cmu440课程 //htt ...
- golang实现一个简单的websocket聊天室
基本原理: 1.引入了 golang.org/x/net/websocket 包. 2.监听端口. 3.客户端连接时,发送结构体: {"type":"login" ...
- golang实现一个简单的http代理
代理是网络中的一项重要的功能,其功能就是代理网络用户去取得网络信息.形象的说:它是网络信息的中转站,对于客户端来说,代理扮演的是服务器的角色,接收请求报文,返回响应报文:对于web服务器来说,代理扮演 ...
- golang入门-- 一个2D的图形库学习
此库叫gg,源码在github. 1.获取源码并安装到本地: 首先要安装git (传送门) : https://git-scm.com/download/ 然后就可以通过 go get 命令从 ...
- golang 创建一个简单的连接池,减少频繁的创建与关闭
一.连接池的描述图片如下: 二.连接池代码如下: package main; import ( "time" "sync" "errors" ...
- golang 创建一个简单的资源池,重用资源,减少GC负担
package main; import ( "sync" "errors" "fmt" ) //代码参考<Go语言实战>中第7 ...
随机推荐
- [Javascript] delete keyword
delete keyword doesn't actually delete the value but just the reference. var me = { name: { first: & ...
- linux内存管理系列 +CFS 图解
http://blog.chinaunix.net/uid-20543183-id-1930786.html http://blog.csdn.net/ustc_dylan/article/categ ...
- UIWindow详解
UIScreen(屏幕),UIWindow(窗口),UIView(视图)是iOS的几个基本界面元素.其中UIWindow(窗口)和UIView(视图)是为iPhone应用程序构造用户界面的可视组件.U ...
- PS之火焰铁锈字
效果图 素材一:将下图在PS中打开,选择菜单:编辑>定义图案,命名后关闭图案 素材二 1.新建如下画布 2.将素材二拖入新建好的画布(使用移动工具) 3.先将文字图层复制4次(ctrl+J)并且 ...
- Canvas保存图片保存到本地
使用Canvas绘图,将图片保存到本地方法 一.使用HTML5 a标签的download属性,将图片保存到本地,不需要链接服务器 关于download属性:HTML5 <a>标签downl ...
- [IO] C# DirFileHelper文件与文件夹操作类教程与源码下载 (转载)
点击下载 DirFileHelper.zip 主要功能如下所示 // 摘要: // 向文本文件的尾部追加内容 // // 参数: // filePath: // 文件的绝对路径 // // conte ...
- 7第七章联接和APPLY运算符(转载)
7第七章联接和APPLY运算符 原文链接 本文由豆约翰博客备份专家远程一键发布
- .NET(C#):获取进程的CPU使用状况
第一个是通过手动的方法来计算CPU使用比例:CPU使用比例 = 在间隔时间内进程的CPU使用时间 除以 计算机逻辑CPU数量. 使用Process类的UserProcessorTime和Privile ...
- Invalid segment BIN$xxx and dba_recyclebin was empty (回收站空,释放无效的BIN$xx空间)
近来有套库空间紧张,发现有很大BIN$开头的TABLE partition,index partition 类型的段,查询确认是2个月前删除的对象,手动清空过dba_recyclebin使用purge ...
- Shell编程之Shift的用法
位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常 ...