Go基础编程实践(九)—— 网络编程
程序员文章站
2022-03-18 16:37:20
下载网页 下载文件 创建Web服务器 创建文件服务器 ......
下载网页
package main import ( "io/ioutil" "net/http" "fmt" ) func main() { url := "http://www.cnblogs.com/gaiheilukamei" response, err := http.get(url) if err != nil { panic(err) } defer response.body.close() html, err2 := ioutil.readall(response.body) if err2 != nil { panic(err2) } // readall返回[]byte fmt.println(string(html)) } // 这种直接下载下来的网页用处不大,旨在提供思路
下载文件
package main import ( "net/http" "io" "os" "fmt" ) func main() { // 获取文件 imageurl := "http://pic.uzzf.com/up/2015-7/20157816026.jpg" response, err := http.get(imageurl) if err != nil { panic(err) } defer response.body.close() // 创建保存位置 file, err2 := os.create("pic.jpg") if err2 != nil { panic(err2) } // 保存文件 _, err3 := io.copy(file, response.body) if err3 != nil { panic(err3) } file.close() fmt.println("image downloading is successful.") }
创建web服务器
// 运行程序,打开浏览器,根据输入的查询参数将返回不同的值 // 例如:"http://localhost:8000/?planet=world" 将在页面显示"hello, world" package main import ( "net/http" "log" ) func sayhello(w http.responsewriter, r *http.request) { // query方法解析rawquery字段并返回其表示的values类型键值对。 planet := r.url.query().get("planet") w.write([]byte("hello, " + planet)) } func main() { http.handlefunc("/", sayhello) log.fatalln(http.listenandserve(":8000", nil)) }
创建文件服务器
// 在本程序同目录下创建images文件夹,放入一些文件 // 打开浏览器访问"http://localhost:5050"将会看到文件 package main import "net/http" func main() { http.handle("/", http.fileserver(http.dir("./images"))) http.listenandserve(":5050", nil) }
上一篇: MySQL时间戳与日期格式的相互转换
下一篇: shell脚本实现磁盘监控系统