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)
}
相关推荐
知其然亦知其所以然22 分钟前
Spring AI 入门实战:我用七个关键词,彻底搞懂了它的核心概念!
java·后端·spring
悟空码字31 分钟前
支付宝开放平台,这谁写的,要扣绩效吧
后端
魔镜魔镜_谁是世界上最漂亮的小仙女31 分钟前
java-JDBC
java·后端
武子康31 分钟前
大数据-13-Hive 启动Hive DDL DML 增删改查 操作Hive的HQL
大数据·后端
gorgor在码农34 分钟前
Spring Boot多数据源切换:三种实现方式详解与实战
java·spring boot·后端·mybatis·mybatis plus·多数据源切换
机灵小和尚38 分钟前
腾讯云 Teo H5直传CDN空间
后端·云计算·php·腾讯云·html5
追逐时光者1 小时前
C#/.NET/.NET Core技术前沿周刊 | 第 42 期(2025年6.9-6.15)
后端·.net
南囝coding1 小时前
《独立开发工具 • 半月刊》 第 012 期
前端·后端
程序猿DD1 小时前
告别微服务,迎接SCS(Self-Contained Systems)?新概念还是炒冷饭?
后端·微服务·架构
cyc&阿灿2 小时前
深度解析SpringBoot自动化部署实战:从原理到最佳实践
spring boot·后端·自动化