package main

import (
"io"
"log"
"net/http"
"strings"
) func main() {
localHost := "127.0.0.1.8001"
targetHost := "127.0.0.1:80"
httpsServer(localHost, targetHost) log.Fatalln("http server down!!!")
} func httpsServer(addr string, remote_addr string) { http.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) {
cli := &http.Client{}
body := make([]byte, 0)
n, err := io.ReadFull(req.Body, body)
if err != nil {
io.WriteString(w, "Request Data Error")
return
}
reqUrl := "http://" + remote_addr + req.URL.Path req2, err := http.NewRequest(req.Method, reqUrl, strings.NewReader(string(body)))
if err != nil {
io.WriteString(w, "Request Error")
return
}
// set request content type
contentType := req.Header.Get("Content-Type")
req2.Header.Set("Content-Type", contentType)
// request
rep2, err := cli.Do(req2)
if err != nil {
io.WriteString(w, "Not Found!")
return
}
defer rep2.Body.Close()
n, err = io.ReadFull(rep2.Body, body)
if err != nil {
io.WriteString(w, "Request Error")
return
}
// set response header
for k, v := range rep2.Header {
w.Header().Set(k, v[0])
}
io.WriteString(w, string(body[:n]))
})
var err error = nil
err = http.ListenAndServe(":12307", nil)
if err != nil {
log.Fatal("server down!!!")
}
}

  

最新文章

  1. c++中变量声明和变量定义的区别。2016年12月6日
  2. 【openresty】向lua代码中传递参数
  3. sqlmap基本命令
  4. Python开发者须知 —— Bottle框架常见的几个坑
  5. SQL在指定列后添加新的列
  6. shell查找匹配行,输出该行并输出下面的一行
  7. Test2014-3-1 魅力值比较
  8. Java 8:不要再用循环了
  9. shell中使用sqlplus及调试相关
  10. C语言的本质(5)——类型转换的本质与处理
  11. birdnest是什么意思_birdnest在线翻译_英语_读音_用法_例句_海词词典
  12. n&m位运算
  13. 对thinkphp5.0框架的实例学习
  14. 浅谈nodejs和php
  15. Typescript知识梳理
  16. Python【每日一问】02
  17. 8 -- 深入使用Spring -- 5...2 使用@Cacheable执行缓存
  18. dj forms表单组件
  19. Hadoop日记Day14---MapReduce源代码回顾总结
  20. Controller Plane

热门文章

  1. 续~ES6 新语法 (symbol、set集合、 数组对象的filter(),reduce(),weakset(),map()方法)
  2. 13.生产环境中的 redis 是怎么部署的?
  3. Mac启动MySQL
  4. 爬虫---Beautiful Soup 爬取图片
  5. ensorFlow的安装
  6. 每天一套题打卡|河南省第七届ACM/ICPC
  7. 如何做到MySQL高扩展性?
  8. 生鲜超市项目错误及解决办法(crispy_forms、外键指向自己、class嵌套访问父类、meta类及各种字段参数)
  9. BERT
  10. nodejs的一些基操