php小編草莓將為大家解答一個常見問題:「嘗試從httptest啟動未啟動的伺服器時出現nil指標錯誤」。在進行HTTP測試時,有時我們可能會遇到這個錯誤。這是因為httptest試圖連接到一個尚未啟動的伺服器,導致出現了nil指標錯誤。在解決這個問題之前,我們需要先了解一些背景知識。
我正在嘗試在我的程式碼中建立一個模擬httpserver。我想指定連接埠號,因此我使用了以下程式碼:
l, _ := net.listen("http", "localhost:49219") svr := httptest.newunstartedserver(http.handlerfunc(func(w http.responsewriter, r *http.request) { ... })) svr.listener.close() svr.listener = l svr.start()
但是,在 svr.start() 行,我收到一則錯誤訊息:
panic: runtime error: invalid memory address or nil pointer dereference [recovered] panic: runtime error: invalid memory address or nil pointer dereference
顯然 svr 此時不為零。我想知道為什麼會出現此錯誤以及應該如何解決此問題?
呼叫net.listen
函數時需要更新第一個參數(行:l, := net.listen("http", "localhost:49219")
。
必須是tcp
、tcp4
、tcp6
、unix
或unixpacket
,而不是http
。
對於ipv4
,您可以使用tcp4
。
範例:
65bd95abbd7c以上是嘗試從 httptest 啟動未啟動的伺服器時出現 nil 指標錯誤的詳細內容。更多資訊請關注PHP中文網其他相關文章!