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 ...
随机推荐
- [D3] 4. d3.max
how to use d3.max to normalize your dataset visually within the specific bounds of a variable domain ...
- careercup-数组和字符串1.3
1.3 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排序后,能否变成另一个字符串. C++实现代码: #include<iostream> #include<map> ...
- jsp-javabean-setproperty介绍
李兴华<java web开发实战经典>第7章关于javabean的讲解中说道:<jsp:setProperty>标签一共有4种使用方法·下面列出了4种操作语法的格式: 设置 ...
- one problem about Apple Keychain in use
解决方案 Add Security.framework, then rebuild. Sometimes I find I have to build clean and then rebuild. ...
- HDU2053.JAVA
Switch Game Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- HDU-1015(暴力)
Safecracker Problem Description === Op tech briefing, 2002/11/02 06:42 CST === "The item is loc ...
- python基础知识三
在考虑它们的运算时,一定要想到python是一门面向对象语言,它对类型的要求是不那么严格的,因为在完全面向对象的语言中,一切都是对象. 那么让我们重新 考虑+ - * /等操作,不再拘泥于传统的数 ...
- javascript-图片横向无缝隙滚动(可在服务器运行)
前两次弄'图片横向滚动'javascript,在本地上运行得很美,可是一上到我们学校后台的服务器,就有很多问题,这个算是行的了. css代码: <style type="text/cs ...
- ubuntu 13.04 xrdp 远程桌面连接问题[转载]
本人ubuntu12.04,遇到了同样的问题,用一下方法解决了,mark一下. ubuntu 13.04 xrdp 远程桌面连接问题. win 7 远程桌面连接 ubuntu desktop 有几种办 ...
- DBA 培训相应内容笔记
014-12-23 slow hang lock 三种常见性能问题 hang;整个数据库不响应,无法创建新连接. hanganalyze输出. dump文件是否有问题信息, 文件是否有其他信息 工具: ...