golang 使用negroni,实现server

来源:互联网 发布:网络硬件工程师招聘 编辑:程序博客网 时间:2024/06/07 03:44
附上server代码package mainimport(    "github.com/urfave/negroni" //安装步骤请看git地址:https://github.com/urfave/negroni, 前提必须装有git工具    "net/http"    "fmt"    "io/ioutil")
func main(){
mux := http.NewServeMux()mux.HandleFunc("/",func(w http.ResponseWriter, req *http.Request){ body,err := ioutil.ReadAll(req.Body) //获取客户端请求参数 if err!=nil{ fmt.Println(err.Error()); return; } // fmt.Println(string(body))//打印客户请求参数 fmt.Fprintf(w, "Welcome to the home page!") //返回客户数据})n := negroni.Classic()n.UseHandler(mux)n.Run(":3000")//端口号}

附上客户端代码//模拟request请求//除了使用Get、Post、PostForm 这三个函数来建立一个简单客户端,//还可以使用://http.Client和http.NewRequest来模拟请求package mainimport(           "fmt"      "io/ioutil"      "net/http"      "strings"      //"net/url"      "encoding/json" )func main() {client := &http.Client{}    //values := url.Values{}    //values.Set("name","张三")    //values.Add("age","20")request, err:= http.NewRequest("POST","http://localhost:3000",nil)    if err !=nil{    fmt.Println(err.Error());    return    }request.Header.Set("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")request.Header.Set("Accept-Charset","GBK,utf-8;q=0.7,*;q=0.3")    request.Header.Set("Accept-Encoding","gzip,deflate,sdch")    request.Header.Set("Accept-Language","zh-CN,zh;q=0.8")    request.Header.Set("Cache-Control","max-age=0")    request.Header.Set("Connection","keep-alive")    request.Header.Set("Content-Type","application/x-www-form-urllencoded; param=value") //网上资料说必须加上此句话,才可接受post参数    //form := url.Values{"name":{"123"}}    type Message struct{ //注意因为要转成json所以字段名首字母必须大写,否则不可转成Json    Name string    Age int    Sex string    }    m := Message{"张三",20,"男"} //拼接客户端请求数据    jsonstr, err := json.Marshal(m); //转换成json    fmt.Println(string(jsonstr));//转成字符打印     request.Body = ioutil.NopCloser(strings.NewReader(string(jsonstr))) //将请求参数放入request对象body中            response,err:=client.Do(request)    if err != nil{    fmt.Println(err.Error())    return    }    if response.StatusCode==200{      body,_ := ioutil.ReadAll(response.Body)//成功打印服务器返回数据      bodystr := string(body);      fmt.Println(bodystr)    }}


0 0
原创粉丝点击