HTTP中post方法提交不同格式的数据
http提交数据主要通过post方法实现,在提交不同格式的数据时最大的不同点在于数据的组织形式不同,同时需要设置不同格式对应的Content-type格式
package mainimport ("bytes""encoding/json""fmt""io""io/ioutil""mime/multipart""net/http""net/url""os""strings"
)func postForm(){data := make(url.Values)data.Add("name", "yuan")data.Add("age", "18")payload := data.Encode()resp, err := http.Post("http://httpbin.org/post", "application/x-www-form-urlencoded", strings.NewReader(payload))if err != nil {panic(err)}defer func() {_ = resp.Body.Close()}()content, err := ioutil.ReadAll(resp.Body)fmt.Printf("%s", content)//{// "args": {},// "data": "",// "files": {},// "form": {// "age": "18",// "name": "yuan"// },// "headers": {// "Accept-Encoding": "gzip",// "Content-Length": "16",// "Content-Type": "application/x-www-form-urlencoded",// "Host": "httpbin.org",// "User-Agent": "Go-http-client/1.1",// "X-Amzn-Trace-Id": "Root=1-60e4770f-2a5448187a3ae2d560ebf3ff"// },// "json": null,// "origin": "222.211.214.252",// "url": "http://httpbin.org/post"//}
}func postJson() {u := struct {Name string `json:"name"`Age int `json:"age"`}{Name: "yuan",Age: 18,}payload, _ := json.Marshal(u)//data := make(url.Values)//data.Add("name", "yuan")//data.Add("age", "18")//payload := data.Encode()resp, err := http.Post("http://httpbin.org/post", "application/json", bytes.NewReader(payload))if err != nil {panic(err)}defer func() { _ = resp.Body.Close() }()content, err := ioutil.ReadAll(resp.Body)fmt.Printf("%s", content)//{// "args": {},// "data": "{\"name\":\"yuan\",\"age\":18}",// "files": {},// "form": {},// "headers": {// "Accept-Encoding": "gzip",// "Content-Length": "24",// "Content-Type": "application/json",// "Host": "httpbin.org",// "User-Agent": "Go-http-client/1.1",// "X-Amzn-Trace-Id": "Root=1-60e47872-48e5cb7c65ce959f03544ffb"//},// "json": {// "age": 18,// "name": "yuan"//},// "origin": "222.211.214.252",// "url": "http://httpbin.org/post"//}
}func postFile(){body := &bytes.Buffer{}writer := multipart.NewWriter(body)upload1, _ := writer.CreateFormFile("formName1", "test.txt")uploadFile1, _:= os.Open("test.txt")defer uploadFile1.Close()io.Copy(upload1, uploadFile1)upload2, _ := writer.CreateFormFile("formName2", "test.txt")uploadFile2, _:= os.Open("test.txt")defer uploadFile2.Close()io.Copy(upload2, uploadFile2)writer.Close()//以上数据组织完成fmt.Println(writer.FormDataContentType())resp, err := http.Post("http://httpbin.org/post", writer.FormDataContentType(), body)if err != nil {panic(err)}defer func() {_ = resp.Body.Close()}()content, _ := ioutil.ReadAll(resp.Body)fmt.Printf("%s", content)//{// "args": {},// "data": "",// "files": {// "formName1": "qwqwertwertwertwert",// "formName2": "qwqwertwertwertwert"// },// "form": {},// "headers": {// "Accept-Encoding": "gzip",// "Content-Length": "462",// "Content-Type": "multipart/form-data; boundary=c7d43bcbc370e8f128df077361e7f5551970ee279eb483fc4c1a7016e68f",// "Host": "httpbin.org",// "User-Agent": "Go-http-client/1.1",// "X-Amzn-Trace-Id": "Root=1-60e4806a-501ee1f8562afc5c74143bcf"// },// "json": null,// "origin": "222.211.214.252",// "url": "http://httpbin.org/post"//}
}func main(){//postForm() //post 表单//postJson() //post JsonpostFile() //post file
}
HTTP中post方法提交不同格式的数据相关推荐
- Mybatis-Plus中getOne方法获取最新一条数据
Mybatis-Plus中getOne方法获取最新一条数据 一.代码 1.Controller 2.Service 3.效果 一.代码 1.Controller @GetMapping("/ ...
- ORACLE中,对于存储过程中获取到dd-mm -yy格式的数据,如何做转换。
在做一个组合分区动态sql创建的测试.遇到的问题,都百度不到什么,我就写下来了,方便后人. Oracle版本11G 场景:在存储过程中,获取到的传值日期,或者sysdate都是 11-1月 18 这种 ...
- 使用Jquery提交Json格式的数据到Asp.net程序的另类做法
一般我们使用Jquery提交数据到Asp.net程序都有两种方法,今天我再介绍一种方法.以下是详细描述: 1)使用Get请求的方式,将参数接在请求Url的后面.例如: http://www.googl ...
- python代码html显示数据_通过AJAX success方法以html格式显示数据
我正在编写下面的代码,用json格式从数据库返回的html表中显示数据success : function(data){ alert("declaring variable"); ...
- c#html表格样式大全,如何在C#中以漂亮的表格格式表示数据?
我假设这是一个控制台应用程序,所以datagrid是不可能的. 因此,您需要计算出每个字段的大小,然后为适当的数据,您需要将字符串填充到正确的长度. 根据数据类型,您可能想要向左或向右垫. 为了帮助你 ...
- SoapUI进行REST请求,POST方法提交到数据库的数据乱码问题
一开始以为要把json字符串的key和value一个一个的加进去,结果总是报 300,参数错误,后来才发现(https://www.joecolantonio.com/2013/08/31/soapu ...
- iframe中的方法
整体思路: resizeWindow 是在父页面中调用子页面的方法 resizeWindows 是在子页面中调用父页面的方法 toChildValue 是父页面向子页面传数据的方法 父页面 creat ...
- pyCharm中添加方法注释(Docstring format Live Templates)
版权声明:本文为博主原创文章,未经博主允许不得转载. 优雅规范的注释有助于对代码理解,易于与人合作开发,提高效率.但若没有自动化的注释会让写注释耗时耗力. 注释中的要素包括:功能和用途简介.参数.返回 ...
- 新版本的apidoc提交参数格式
apidoc的界面比swagger要好看点,我所在的项目一般都是用apidoc作为api接口文档的工具. 安装很简单: 到官网下载nodejs,安装后,执行: npm install apidoc - ...
最新文章
- Windows 7时代即将终结!
- 第一回写的用arraylist模拟栈操作
- RamDisk - 充分利用Vista的大内存
- 好物推荐丨故宫出品“烧脑奇书”:豆瓣9.2分,悬疑解谜参与感强,11种结局,可以玩一年!...
- 【发布】温度监测报警器v1.3a稳定版!
- linux下tar包追加与其他压缩追加方式
- Matlab--二次多项式曲面拟合
- oracle erp 设置文档,Oracle ERP管理手册
- caputo分数阶导数程序_caputo分数阶导数
- html css remove,CSS類別操作--.removeClass()
- 人脸识别之DeepID模型
- 公式不懂也无妨,业务精通才是真正的算法工程师
- 软件架构-nginx详解上
- echarts图表给柱形图的每个柱子设置不同颜色(包括每个柱子设置渐变颜色)
- UVA 10859 放置街灯(树形DP)
- unity3D-learning:UI背包系统
- Quartus Prime下载地址(17.1Standard)
- smarty中文帮助文档
- 2018年10月移动应用APP活跃用户数排行榜TOP20
- 对CSDN高校俱乐部的建议
热门文章
- cad新手必练300图_[CAD]平面练习图,CAD新手练技术练速度的好去处
- 数据中心液冷技术发展分析
- java读取src路径下的txt文件_Java程序使用Maven后无法运行?
- php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例
- ML:MLOps系列讲解之《MLOps的State(工具和框架)》解读
- 成功解决cv2.error: C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4044: error: (-215) s
- NLP之TEA:自然语言处理之文本情感分析的简介、算法、应用、实现流程方法、案例应用之详细攻略
- 3.1 Tensorflow: 批标准化(Batch Normalization)
- 物联网网络编程和web编程
- 如何使用Maven的archetype快速生成一个新项目(解决生成项目目录不完整问题)...