Maison >développement back-end >Golang >Impossible de modifier la requête POST en requête GET à l'aide de Gin/GoLang

Impossible de modifier la requête POST en requête GET à l'aide de Gin/GoLang

PHPz
PHPzavant
2024-02-10 19:45:08551parcourir

无法使用 Gin/GoLang 将 POST 请求更改为 GET 请求

l'éditeur php Baicao vous présentera aujourd'hui un problème courant, à savoir comment changer la requête POST en requête GET lors de l'utilisation du framework Gin/GoLang. Parfois, nous pouvons avoir besoin de convertir une requête POST en requête GET, comme dans certaines situations spécifiques ou pour faciliter les tests. Cependant, la mise en œuvre de cette fonctionnalité n’est pas si simple et nécessite quelques astuces et ajustements de code. Ensuite, nous répondrons à cette question étape par étape et vous aiderons à réussir cette conversion.

Contenu de la question

Je n'arrive pas à changer la méthode post avec la méthode get dans le framework gin. Lorsque je reçois une demande, je souhaite vérifier ses informations d'identification et, si elles sont valides, rediriger vers une autre page avec un point de terminaison get. Chaque fois que j'utilise c.request.method="get", cela semble modifier uniquement la requête du point de terminaison actuel, mais celui redirigé a toujours la méthode d'origine, qui est la méthode de publication.

Code :

auth.GET("/sign-in", func(c *gin.Context) {
    c.File("../../html/index.html")
})

auth.POST("/sign-in", func(c *gin.Context) {
    c.Request.Method = "GET"
    c.Redirect(http.StatusTemporaryRedirect, "/profile/:pid")
})

code 307请求原本是post请求,由端点本身更改为get.

Exécuter c.request.method="get" n'aide pas. Je ne trouve pas non plus la réponse. Une idée sur la façon de changer ce comportement ? La création d'une nouvelle demande est-elle la seule solution ?

Solution de contournement

Code d'état 307 Documentation dit :

La méthode et le corps de la requête d'origine sont réutilisés pour effectuer la requête redirigée. Si vous souhaitez modifier la méthode utilisée en GET, utilisez plutôt 303 See Other.

Donc, si vous changez http.StatusTemporaryRedirect 更改为 http.StatusSeeOther, cela fonctionnera sans changer la méthode de demande d'origine.

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