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方法提交不同格式的数据相关推荐

  1. Mybatis-Plus中getOne方法获取最新一条数据

    Mybatis-Plus中getOne方法获取最新一条数据 一.代码 1.Controller 2.Service 3.效果 一.代码 1.Controller @GetMapping("/ ...

  2. ORACLE中,对于存储过程中获取到dd-mm -yy格式的数据,如何做转换。

    在做一个组合分区动态sql创建的测试.遇到的问题,都百度不到什么,我就写下来了,方便后人. Oracle版本11G 场景:在存储过程中,获取到的传值日期,或者sysdate都是 11-1月 18 这种 ...

  3. 使用Jquery提交Json格式的数据到Asp.net程序的另类做法

    一般我们使用Jquery提交数据到Asp.net程序都有两种方法,今天我再介绍一种方法.以下是详细描述: 1)使用Get请求的方式,将参数接在请求Url的后面.例如: http://www.googl ...

  4. python代码html显示数据_通过AJAX success方法以html格式显示数据

    我正在编写下面的代码,用json格式从数据库返回的html表中显示数据success : function(data){ alert("declaring variable"); ...

  5. c#html表格样式大全,如何在C#中以漂亮的表格格式表示数据?

    我假设这是一个控制台应用程序,所以datagrid是不可能的. 因此,您需要计算出每个字段的大小,然后为适当的数据,您需要将字符串填充到正确的长度. 根据数据类型,您可能想要向左或向右垫. 为了帮助你 ...

  6. SoapUI进行REST请求,POST方法提交到数据库的数据乱码问题

    一开始以为要把json字符串的key和value一个一个的加进去,结果总是报 300,参数错误,后来才发现(https://www.joecolantonio.com/2013/08/31/soapu ...

  7. iframe中的方法

    整体思路: resizeWindow 是在父页面中调用子页面的方法 resizeWindows 是在子页面中调用父页面的方法 toChildValue 是父页面向子页面传数据的方法 父页面 creat ...

  8. pyCharm中添加方法注释(Docstring format Live Templates)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 优雅规范的注释有助于对代码理解,易于与人合作开发,提高效率.但若没有自动化的注释会让写注释耗时耗力. 注释中的要素包括:功能和用途简介.参数.返回 ...

  9. 新版本的apidoc提交参数格式

    apidoc的界面比swagger要好看点,我所在的项目一般都是用apidoc作为api接口文档的工具. 安装很简单: 到官网下载nodejs,安装后,执行: npm install apidoc - ...

最新文章

  1. Windows 7时代即将终结!
  2. 第一回写的用arraylist模拟栈操作
  3. RamDisk - 充分利用Vista的大内存
  4. 好物推荐丨故宫出品“烧脑奇书”:豆瓣9.2分,悬疑解谜参与感强,11种结局,可以玩一年!...
  5. 【发布】温度监测报警器v1.3a稳定版!
  6. linux下tar包追加与其他压缩追加方式
  7. Matlab--二次多项式曲面拟合
  8. oracle erp 设置文档,Oracle ERP管理手册
  9. caputo分数阶导数程序_caputo分数阶导数
  10. html css remove,CSS類別操作--.removeClass()
  11. 人脸识别之DeepID模型
  12. 公式不懂也无妨,业务精通才是真正的算法工程师
  13. 软件架构-nginx详解上
  14. echarts图表给柱形图的每个柱子设置不同颜色(包括每个柱子设置渐变颜色)
  15. UVA 10859 放置街灯(树形DP)
  16. unity3D-learning:UI背包系统
  17. Quartus Prime下载地址(17.1Standard)
  18. smarty中文帮助文档
  19. 2018年10月移动应用APP活跃用户数排行榜TOP20
  20. 对CSDN高校俱乐部的建议

热门文章

  1. cad新手必练300图_[CAD]平面练习图,CAD新手练技术练速度的好去处
  2. 数据中心液冷技术发展分析
  3. java读取src路径下的txt文件_Java程序使用Maven后无法运行?
  4. php xml 增删改查,PHP实现对xml进行简单的增删改查(CRUD)操作示例
  5. ML:MLOps系列讲解之《MLOps的State(工具和框架)》解读
  6. 成功解决cv2.error: C:\projects\opencv-python\opencv\modules\imgproc\src\resize.cpp:4044: error: (-215) s
  7. NLP之TEA:自然语言处理之文本情感分析的简介、算法、应用、实现流程方法、案例应用之详细攻略
  8. 3.1 Tensorflow: 批标准化(Batch Normalization)
  9. 物联网网络编程和web编程
  10. 如何使用Maven的archetype快速生成一个新项目(解决生成项目目录不完整问题)...