下载网页
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)
}