Maison  >  Article  >  développement back-end  >  erreur de pointeur nulle lors de la tentative de démarrage d'un serveur non démarré à partir de httptest

erreur de pointeur nulle lors de la tentative de démarrage d'un serveur non démarré à partir de httptest

WBOY
WBOYavant
2024-02-12 19:33:21560parcourir

尝试从 httptest 启动未启动的服务器时出现 nil 指针错误

l'éditeur php Strawberry répondra à une question courante pour tout le monde : "Une erreur de pointeur nul s'est produite lors de la tentative de démarrage d'un serveur non démarré à partir de httptest". Lors des tests HTTP, nous pouvons parfois rencontrer cette erreur. En effet, httptest tente de se connecter à un serveur qui n'a pas encore été démarré, ce qui entraîne une erreur de pointeur nulle. Avant de résoudre ce problème, nous avons besoin de quelques connaissances de base.

Contenu de la question

J'essaie de créer un serveur http fictif dans mon code. Je voulais préciser le numéro de port, j'ai donc utilisé le code suivant :

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()

Cependant, sur la ligne svr.start(), j'obtiens un message d'erreur :

panic: runtime error: invalid memory address or nil pointer dereference [recovered]
panic: runtime error: invalid memory address or nil pointer dereference

Évidemment, svr n'est pas nul en ce moment. Je veux savoir pourquoi cette erreur se produit et comment la corriger ?

Solution

  • Appelez net.listen 函数时需要更新第一个参数(行:l, := net.listen("http", "localhost:49219").

  • doit être tcptcp4tcp6unixunixpacket,而不是 http.

  • pouripv4,您可以使用tcp4.

Exemple :

65bd95abbd7c

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer