gpt4 book ai didi

go - 如何在测试服务器中注入(inject)特定的 IP 地址?戈朗

转载 作者:IT王子 更新时间:2023-10-29 01:07:23 24 4
gpt4 key购买 nike

我正在尝试测试一个基于 ip 地址提供信息的应用程序。但是我找不到如何手动设置 IP 地址。任何想法 ?

func TestClientData(t *testing.T) {

URL := "http://home.com/hotel/lmx=100"

req, err := http.NewRequest("GET", URL, nil)
if err != nil {
t.Fatal(err)
}
req.RemoveAddr := "0.0.0.0" ??

w := httptest.NewRecorder()
handler(w, req)

b := w.Body.String()
t.Log(b)
}

最佳答案

正确的行是:

req.RemoteAddr = "0.0.0.0"

您不需要 :=。它不会工作,因为您没有创建新变量。

像这样(在 Playground 上 http://play.golang.org/p/_6Z8wTrJsE ):

package main

import (
"io"
"log"
"net/http"
"net/http/httptest"
)

func handler(w http.ResponseWriter, r *http.Request) {
io.WriteString(w, "Got request from ")
io.WriteString(w, r.RemoteAddr)
}

func main() {
url := "http://home.com/hotel/lmx=100"

req, err := http.NewRequest("GET", url, nil)
if err != nil {
log.Fatal(err)
}

// can't use := here, because RemoteAddr is a field on a struct
// and not a variable
req.RemoteAddr = "127.0.0.1"

w := httptest.NewRecorder()
handler(w, req)

log.Print(w.Body.String())
}

关于go - 如何在测试服务器中注入(inject)特定的 IP 地址?戈朗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24490754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com