golang post发送application/json数据到服务器

  Golang在网络编程上非常方便。下面介绍下如果通过Content-Type:application/json;charset=UTF-8发送数据到服务器。

  

import (
	"net/http"
	"encoding/json"
	"fmt"
	"bytes"
	"io/ioutil"
	"unsafe"
)

type JsonPostSample struct {

}

func (this *JsonPostSample) SamplePost() {
	song := make(map[string]interface{})
	song["name"] = "李白"
	song["timelength"] = 128
	song["author"] = "李荣浩"
	bytesData, err := json.Marshal(song)
	if err != nil {
		fmt.Println(err.Error() )
		return
	}
	reader := bytes.NewReader(bytesData)
	url := "http://localhost/echo.php"
	request, err := http.NewRequest("POST", url, reader)
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	request.Header.Set("Content-Type", "application/json;charset=UTF-8")
	client := http.Client{}
	resp, err := client.Do(request)
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	respBytes, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		fmt.Println(err.Error())
		return
	}
	//byte数组直接转成string,优化内存
	str := (*string)(unsafe.Pointer(&respBytes))
	fmt.Println(*str)
}

  

  

posted @ 2017-02-21 23:49  walkabc  阅读(24275)  评论(0编辑  收藏  举报