资源描述:
《go语言网络编程-v0.0.1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Go语言网络编程why404@七牛云存储2012/07/2112年7月21日星期六1OverviewSocketHTTPRPCJSONJSON-RPCWebDevlopment12年7月21日星期六2Socket编程12年7月21日星期六3HTTP编程HTTPClientHTTPServer12年7月21日星期六4HTTPClientMethodshttp.Gethttp.Posthttp.PostFormhttp.Headhttp.Do12年7月21日星期六5http.Getfunc(cClient)Get(urlstring)(rResponse,err
2、error)resp,err:=http.Get("http://example.com/")iferr!=nil{//handleerror…return}deferresp.Body.close()io.Copy(os.Stdout,resp.Body)12年7月21日星期六6http.Postfunc(cClient)Post(urlstring,bodyTypestring,bodyio.Reader)(rResponse,errerror)resp,err:=http.Post("http://example.com/upload","image/
3、jpeg",&imageDataBuf)iferr!=nil{//handleerror…return}ifresp.StatusCode!=http.StatusOK{//handleerror…return}//…12年7月21日星期六7http.PostFormfunc(cClient)PostForm(urlstring,dataurl.Values)(rResponse,errerror)resp,err:=http.PostForm("http://example.com/posts",url.Values{"title":{"articleti
4、tle"},"content":{"articlebody"}})iferr!=nil{//handleerror…return}//…12年7月21日星期六8http.Headfunc(cClient)Head(urlstring)(rResponse,errerror)resp,err:=http.Head("http://example.com/")12年7月21日星期六9http.Dofunc(cClient)Do(reqRequest)(respResponse,errerror)req,err:=http.NewRequest("GET","ht
5、tp://example.com",nil)//...req.Header.Add("User-Agent","GobookCustomUser-Agent")resp,err:=http.Do(req)//...12年7月21日星期六10HTTPServer处理http请求自定义http.Server12年7月21日星期六11处理http请求funcListenAndServe(addrstring,handlerHandler)errorhttp.Handle("/foo",fooHandler)http.HandleFunc("/bar",func(w
6、http.ResponseWriter,rhttp.Request){fmt.Fprintf(w,"Hello,%q",html.EscapeString(r.URL.Path))})log.Fatal(http.ListenAndServe(":8080",nil))//http.Handle或http.HandleFunc缺省注入http.DefaultServeMux12年7月21日星期六12自定义http.Servers:=&http.Server{Addr:":8080",Handler:myHandler,ReadTimeout:10time.S
7、econd,WriteTimeout:10time.Second,MaxHeaderBytes:1<<20,}log.Fatal(s.ListenAndServe())12年7月21日星期六13HTTP高级话题12年7月21日星期六14自定义http.Clienthttp.Get==http.DefaultClient.Get,...12年7月21日星期六15http.ClientStructtypeClientstruct{//Transport指定了执行一个HTTP请求的运行机制//http.DefaultTransport//http.RoundTri
8、pperTransportRoundTripperC