验证中...
本周日【珠海源创会】一起聊聊:PingCAP分布式事务、支付宝移动端实践、GSBN技术框架选型,点此报名占座
语言: Go
分类: 微信开发
最后更新于 2018-07-26 15:23
获取微信发送消息转发
原始数据 复制代码
package main
import (
"bytes"
"fmt"
"io/ioutil"
"net/http"
"time"
"github.com/astaxie/beego/logs"
)
var plainContentType = []string{"text/plain; charset=utf-8"}
func init() {
logs.SetLogger(logs.AdapterConsole)
//logs.SetLogger(logs.AdapterFile, `{"filename":"logs/replay.log","level":7,"maxlines":0,"maxsize":0,"daily":true,"maxdays":10}`)
//logs.Async()
}
// 返回内容
func writeContextType(w http.ResponseWriter, value []string) {
header := w.Header()
if val := header["Content-Type"]; len(val) == 0 {
header["Content-Type"] = value
}
}
// 获取发送内容
func getBody(w http.ResponseWriter, r *http.Request) {
defer r.Body.Close()
con, _ := ioutil.ReadAll(r.Body) //获取post的数据
reqUrl := r.RequestURI
logs.Info(r.RequestURI) // 请求后缀参数
bodyStr := string(con) // 发送的XML内容
logs.Info("接收到内容:", bodyStr)
// 请求转发
contentReader := bytes.NewReader(con)
// 处理请求
req, _ := http.NewRequest("POST", "http://172.16.50.131:3040"+reqUrl, contentReader)
req.Header.Set("Content-Type", "application/xml")
client := &http.Client{}
client.Timeout = 10 * time.Second
resp, _ := client.Do(req)
defer resp.Body.Close()
// 获取返回内容返回
reqRes, _ := ioutil.ReadAll(resp.Body) //获取post的数据
logs.Info("返回到内容:", string(reqRes))
// 返回
writeContextType(w, plainContentType)
w.Write(reqRes)
}
func main() {
// 正式上线地址
http.HandleFunc("/wxReply", getBody)
fmt.Println("soft start")
http.ListenAndServe(":3040", nil)
}

评论列表( 0 )

你可以在登录后,发表评论

搜索帮助

12_float_left_people 12_float_left_close