为了账号安全,请及时绑定邮箱和手机立即绑定

老师你好!你没有给data赋值,使用http://localhost:8888/blockchain/write?data=hello,传入值之后,data为空?

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()

}

正在回答

1 回答

这里只是没有加校验而已,如果加判断data没有值就会返回错误信息

0 回复 有任何疑惑可以回复我~
#1

霜花似雪 提问者

非常感谢!
2018-08-12 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

老师你好!你没有给data赋值,使用http://localhost:8888/blockchain/write?data=hello,传入值之后,data为空?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信