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)
}
相关推荐
一抹轻笑动人14 分钟前
Viger笔记
笔记·golang
若丶相见14 分钟前
Java对比Python 3.10+ 全栈语法与底层进阶百科全书
后端
奕成则成15 分钟前
Django使用
后端·python·django
superman超哥21 分钟前
Rust impl 块的组织方式:模块化设计的艺术
开发语言·后端·rust·模块化设计·rust impl块·impl块
superman超哥27 分钟前
仓颉跨语言编程:FFI外部函数接口的原理与深度实践
开发语言·后端·仓颉编程语言·仓颉·仓颉语言·仓颉跨语言编程·ffi外部函数接口
咕白m62527 分钟前
通过 Python 提取 PDF 表格数据(导出为 TXT、Excel 格式)
后端·python
悟空码字36 分钟前
SpringBoot读取Excel文件,一场与“表格怪兽”的搏斗记
java·spring boot·后端
SimonKing37 分钟前
支付宝H5支付接入实战:Java一站式解决方案
java·后端·程序员
程序员侠客行44 分钟前
Mybatis的Executor和缓存体系
java·后端·架构·mybatis
爱学习的小可爱卢1 小时前
JavaEE进阶——Spring Bean与Java Bean的核心区别
java·后端·java-ee