package main import ( "net/http" "gocode/BlockChain/core" "encoding/json" "io" ) var blockchain *core.Blockchain func run(){ //获取链上的数据 http.HandleFunc("/blockchain/get", blockchainGetHandler) //写数据到链上 http.HandleFunc("/blockchain/write", blockchainWriteHandler) //启动对端口的监听 http.ListenAndServe("localhost:8888", nil) } //获取链上的数据 func blockchainGetHandler(w http.ResponseWriter, r *http.Request){ //转化为json数据格式 bytes, error := json.Marshal(blockchain) //如果erroe不为空 if error != nil { http.Error(w, error.Error(), http.StatusInternalServerError) return } io.WriteString(w, string(bytes)) } //往区块链上写数据 func blockchainWriteHandler(w http.ResponseWriter, r *http.Request){ blockData := r.URL.Query().Get("data") //发送数据 blockchain.SendData(blockData) //把最新的区块链数据会显给调用者 blockchainGetHandler(w, r) } //启动之后访问: http://localhost:8888/blockchain/get //添加数据到区块链: http://localhost:8888/blockchain/write?data=hello world func main() { //创建一个blockchain blockchain = core.NewBlockchain() run() }
这里只是没有加校验而已,如果加判断data没有值就会返回错误信息