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

获取“127.0.0.1 无法分配请求的地址” - http.Client

获取“127.0.0.1 无法分配请求的地址” - http.Client

Go
Smart猫小萌 2021-06-29 13:57:07
我正在做的事情相当简单。我需要创建一个非常小且快速的“代理”服务器。目前我有一个被代理到(nodejs)和一个代理服务(go)的基线服务器。请原谅缺乏实际的“代理” - 现在只是测试。基线服务var http = require('http');http.createServer(function (req, res) {    // console.log("received request");    res.writeHead(200, {'Content-Type': 'text/plain'});      res.end('Hello World\n');}).listen(8080, '127.0.0.1');console.log('Server running at http://127.0.0.1:8080/');代理服务package mainimport (  "flag"  "log"  "net/http"  "net/url")var (  listen = flag.String("listen", "0.0.0.0:9000", "listen on address")  logp = flag.Bool("log", false, "enable logging"))func main() {  flag.Parse()  proxyHandler := http.HandlerFunc(proxyHandlerFunc)  log.Fatal(http.ListenAndServe(*listen, proxyHandler))  log.Println("Started router-server on 0.0.0.0:9000")}func proxyHandlerFunc(w http.ResponseWriter, r *http.Request) {  // Log if requested  if *logp {    log.Println(r.URL)  }  /*    * Tweak the request as appropriate:   *   - RequestURI may not be sent to client   *   - Set new URL   */  r.RequestURI = ""  u, err := url.Parse("http://localhost:8080/")  if err != nil {    log.Fatal(err)  }  r.URL = u  // And proxy  // resp, err := client.Do(r)  c := make(chan *http.Response)  go doRequest(c)  resp := <-c  if resp != nil {    err := resp.Write(w)    if err != nil {      log.Println("Error writing response")    } else {      resp.Body.Close()    }  }}func doRequest(c chan *http.Response) {  // new client for every request.  client := &http.Client{}  resp, err := client.Get("http://127.0.0.1:8080/test")  if err != nil {    log.Println(err)    c <- nil  } else {    c <- resp  }}正如标题中提到的,我的问题是我收到了2013/10/28 21:22:30 Get http://127.0.0.1:8080/test: dial tcp 127.0.0.1:8080: can't assign requested address来自doRequest函数的错误说明,我不知道为什么。谷歌搜索这个特定的错误会产生看似无关的结果。
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

我也遇到过这个问题,我添加了一个选项 {DisableKeepAlives: true} 到 http.Transport 解决了这个问题,你可以试试。


查看完整回答
反对 回复 2021-07-05
  • 3 回答
  • 0 关注
  • 614 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信