package main
import("fmt""net/http")var urls =[]string{"http://www.google.com/","http://golang.org/","http://blog.golang.org/",}// 使用http.Head方法,如果地址不通,自己换一个,这些是国外的,需要代理或者开加速器才行funcmain(){// Execute an HTTP HEAD request for all url's// and returns the HTTP status string or an error string.for_, url :=range urls {
resp, err := http.Head(url)if err !=nil{
fmt.Println("Error:", url, err)}
fmt.Println(url,": ", resp.Status)}}
package main
import("encoding/xml""fmt""net/http")/*这个结构会保存解析后的返回数据。
他们会形成有层级的 XML,可以忽略一些无用的数据*/type Status struct{
Text string}type User struct{
XMLName xml.Name
Status Status
}funcmain(){// 发起请求查询推特 Goodland 用户的状态// 这个地址调不通了,是400,自己换一个其他的
response,_:= http.Get("http://twitter.com/users/Googland.xml")// 初始化 XML 返回值的结构
user := User{xml.Name{"","user"}, Status{""}}// 将 XML 解析为我们的结构// 有些资料直接把response.Body放入到xml.Unmarshal中了,由于版本不同,高版本的这里是放入的btye数组,因此使用json方法转了一下
byteRes, errorMsg := json.Marshal(response.Body)if errorMsg ==nil{
xml.Unmarshal(byteRes,&user)
fmt.Printf("status: %s", user.Status.Text)}}
另一个 http.Request 对象 req 的重要属性:req.Method,这是一个包含 GET 或 POST 字符串,用来描述网页是以何种方式被请求的。
w.header().Set("Content-Type", "../..") 设置头信息,比如在网页应用发送 html 字符串的时候,在输出之前执行 w.Header().Set(“Content-Type”, “text/html”),注:w再这里是指http.ResponseWriter
我是demo
package main
import("io""net/http")const form =`
<html><body>
<form action="#" method="post" name="bar">
<input type="text" name="in" />
<input type="submit" value="submit"/>
</form>
</body></html>
`/* handle a simple get request */funcSimpleServer(w http.ResponseWriter, request *http.Request){
io.WriteString(w,"<h1>hello, world</h1>")}funcFormServer(w http.ResponseWriter, request *http.Request){
w.Header().Set("Content-Type","text/html")switch request.Method {case"GET":/* display the form to the user */
io.WriteString(w, form)case"POST":/* handle the form data, note that ParseForm must
be called before we can extract form data *///request.ParseForm();//io.WriteString(w, request.Form["in"][0])
io.WriteString(w, request.FormValue("in"))}}funcmain(){
http.HandleFunc("/test1", SimpleServer)
http.HandleFunc("/test2", FormServer)if err := http.ListenAndServe(":8088",nil); err !=nil{panic(err)}}