golang 使用negroni,实现server

附上server代码

package main

import(
    "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 main

import(
     
      "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)
    }
}


猜你喜欢

转载自blog.csdn.net/abqchina/article/details/53906963
今日推荐