Die POST-Anfrage kann mit Gin/GoLang nicht in eine GET-Anfrage geändert werden

PHPz
Freigeben: 2024-02-10 19:45:08
nach vorne
545 Leute haben es durchsucht

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

php-Editor Baicao stellt Ihnen heute ein häufiges Problem vor, nämlich wie man die POST-Anfrage in eine GET-Anfrage ändert, wenn man das Gin/GoLang-Framework verwendet. Manchmal müssen wir möglicherweise eine POST-Anfrage in eine GET-Anfrage umwandeln, beispielsweise in bestimmten Situationen oder aus Gründen der Testfreundlichkeit. Allerdings ist die Implementierung dieser Funktion nicht so einfach und erfordert einige Tricks und Code-Anpassungen. Als nächstes beantworten wir Ihnen diese Frage Schritt für Schritt und helfen Ihnen, diese Umstellung erfolgreich abzuschließen.

Frageninhalt

Ich kann die Post-Methode anscheinend nicht mit der Get-Methode im Gin-Framework ändern. Wenn ich eine Anfrage erhalte, möchte ich deren Anmeldeinformationen überprüfen und, falls gültig, auf eine andere Seite mit einem Get-Endpunkt umleiten. Wann immer ich c.request.method="get" verwende, scheint sich nur die Anfrage für den aktuellen Endpunkt zu ändern, aber der umgeleitete Endpunkt hat immer noch die ursprüngliche Methode, nämlich die Post-Methode.

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")
})
Nach dem Login kopieren

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

Ausführen c.request.method="get" hilft nicht. Kann die Antwort auch nicht finden. Irgendeine Idee, wie man dieses Verhalten ändern kann? Ist das Erstellen einer neuen Anfrage die einzige Lösung?

Workaround

Statuscode 307 Dokumentation sagt:

Die Methode und der Text der ursprünglichen Anfrage werden wiederverwendet, um die umgeleitete Anfrage auszuführen. Wenn Sie die für GET verwendete Methode ändern möchten, verwenden Sie stattdessen 303 See Other.

Wenn Sie also http.StatusTemporaryRedirect 更改为 http.StatusSeeOther ändern, funktioniert es, ohne die ursprüngliche Anforderungsmethode zu ändern.

Das obige ist der detaillierte Inhalt vonDie POST-Anfrage kann mit Gin/GoLang nicht in eine GET-Anfrage geändert werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage