editor php Strawberry akan menjawab soalan biasa untuk semua orang: "Ralat penunjuk tiada berlaku semasa cuba memulakan pelayan yang tidak dimulakan daripada httptest". Semasa melakukan ujian HTTP, kadangkala kami mungkin menghadapi ralat ini. Ini kerana httptest cuba menyambung ke pelayan yang belum dimulakan, mengakibatkan ralat penunjuk nil. Sebelum menyelesaikan masalah ini, kita memerlukan sedikit pengetahuan latar belakang.
Saya cuba membina pelayan https olok-olok dalam kod saya. Saya ingin menyatakan nombor port, jadi saya menggunakan kod berikut:
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()
Walau bagaimanapun, pada baris svr.start(), saya mendapat mesej ralat:
panic: runtime error: invalid memory address or nil pointer dereference [recovered] panic: runtime error: invalid memory address or nil pointer dereference
Jelas sekali svr bukan sifar pada masa ini. Saya ingin tahu mengapa ralat ini berlaku dan bagaimana saya harus membetulkannya?
Panggil net.listen
函数时需要更新第一个参数(行:l, := net.listen("http", "localhost:49219")
.
mestilah tcp
、tcp4
、tcp6
、unix
或 unixpacket
,而不是 http
.
untukipv4
,您可以使用tcp4
.
Contoh:
65bd95abbd7cAtas ialah kandungan terperinci ralat penunjuk tiada apabila cuba memulakan pelayan yang tidak dimulakan dari httptest. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!