您的位置:首页 > 移动开发 > 微信开发

用Go写了一个类似Proxy的小程序,可以用来访问goolge个人使用还是可以的.

2015-07-23 13:40 836 查看
package main

import (
"fmt"
"io"
"net/http"
)

func main() {
http.HandleFunc("/", route)
e := http.ListenAndServe(":80", nil)
if e != nil {
fmt.Println(e)
}
}

func route(w http.ResponseWriter, r *http.Request) {
req, _ := http.NewRequest(r.Method, "", r.Body)
req.URL = r.URL
req.URL.Host = r.Host //"www.qq.com"
req.URL.Scheme = "http"
for _, v := range r.Cookies() {
req.AddCookie(v)
}
//req.Header = r.Header 这里的Header就不要使用了,使用的话他会自动跳转到https,代理就出问题了.
resp, err := http.DefaultClient.Do(req)
if err != nil {
fmt.Println("Here:", err)
return
}
for k, v := range resp.Header {
for _, value := range v {
w.Header().Add(k, value)
}
}
for _, cookie := range resp.Cookies() {
w.Header().Add("Set-Cookie", cookie.Raw)
}
w.WriteHeader(resp.StatusCode)
io.Copy(w, resp.Body)
resp.Body.Close()
r.Body.Close()
}
这个用来访问海外网站的话,要在本地host,把 域名绑定到IP,例如:1.1.1.1 www.google.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  golang Go语言 go http