Golang框架HTTP客户端框架zdpgo_resty发送表单请求

核心代码

这里通过字典传递了一个简单的表单数据。

发送的是POST请求。

go 复制代码
resp, err := client.R().
		SetFormData(map[string]string{
			"username": "jeeva",
			"password": "mypass",
		}).
		Post("http://127.0.0.1:3333/login")
	fmt.Println(resp, err)

服务端

go 复制代码
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"zdpgo_chi"
	"zdpgo_chi/middleware"
)

func main() {
	r := zdpgo_chi.NewRouter()
	r.Use(middleware.RequestID)
	r.Use(middleware.RealIP)
	r.Use(middleware.Logger)
	r.Use(middleware.Recoverer)

	r.Post("/login", func(w http.ResponseWriter, r *http.Request) {
		r.ParseForm()

		username := r.Form.Get("username")
		password := r.Form.Get("password")
		search := r.Form.Get("search")
		fmt.Println(username, password, search)

		data := map[string]interface{}{
			"username": username,
			"password": password,
			"search":   search,
		}

		jsonData, err := json.Marshal(data)
		if err != nil {
			w.Write([]byte(err.Error()))
			return
		}
		w.Write(jsonData)
	})

	http.ListenAndServe(":3333", r)
}

客户端

go 复制代码
package main

import (
	"fmt"
	"net/url"
	"zdpgo_resty"
)

func main() {
	client := zdpgo_resty.New()

	// 使用表单登录
	resp, err := client.R().
		SetFormData(map[string]string{
			"username": "jeeva",
			"password": "mypass",
		}).
		Post("http://127.0.0.1:3333/login")
	fmt.Println(resp, err)

	// 传递数组
	criteria := url.Values{
		"search": []string{"book", "glass", "pencil"},
	}
	resp, err = client.R().
		SetFormData(map[string]string{
			"username": "jeeva",
			"password": "mypass",
		}).
		SetFormDataFromValues(criteria).
		Post("http://127.0.0.1:3333/login")
	fmt.Println(resp, err)
}
相关推荐
用户83562907805112 分钟前
从手动编辑到代码生成:Python 助你高效创建 Word 文档
后端·python
德育处主任18 分钟前
玩转 Strands:AI Agent 开发,原来可以这么简单!
后端·aigc
Undoom24 分钟前
大模型选型“炼狱”与终结:一份来自普通开发者的AI Ping深度评测报告
后端
用户40993225021226 分钟前
FastAPI的CI流水线怎么自动测端点,还能让Allure报告美到犯规?
后端·ai编程·trae
双向3329 分钟前
Docker 镜像瘦身实战:从 1.2GB 压缩到 200MB 的优化过程
后端
Cyan_RA930 分钟前
计算机网络面试题 — TCP连接如何确保可靠性?
前端·后端·面试
BingoGo32 分钟前
PHP-FPM 深度调优指南 告别 502 错误,让你的 PHP 应用飞起来
后端·php
CoovallyAIHub32 分钟前
微软发布 Visual Studio 2026 Insider:AI深度集成,性能大提升,让开发效率倍增(附下载地址)
后端·编程语言·visual studio
汤姆yu37 分钟前
基于springboot的毕业旅游一站式定制系统
spring boot·后端·旅游
SimonKing40 分钟前
【工具库推荐】Java开发者必备:6款HTTP客户端神器,从经典到未来
java·后端·程序员