go语言 获取post方式json

aqiang912 · · 16467 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

正在学习go语言,看了一段时间的文档,想自己写个服务器,在获取接口数据的时候发现获取数据,格式为"form-data"的数据最简单,</span>

传入post json数据:{"username":"","password":"123456"}

<span style="font-family: Arial, Helvetica, sans-serif;">req.PostForm</span>
req.Header.Get("Content-Type")
req.Host
req.Form
req.FormValue("username")
req.FormValue("password")

获取"application/json"的时候,需要处理一下(以下只获取string):

package utils

import (
	"bytes"
	"io/ioutil"
	"net/http"
)
/**
获取body的data(json)转换为string
*字节数据转string
*/
func GetDataString(req *http.Request) string {
	result, err := ioutil.ReadAll(req.Body)
	if err != nil {
		return "{\"code\": 1,\"msg\": \"failed\"}"
	} else {
		return bytes.NewBuffer(result).String()
	}
}

获取"application/json"的时候,需要处理一下(以下只获取json到map):  

需要引入的包,"io/ioutil","net/http","encoding/json"

var user map[string]interface{}
body, _ := ioutil.ReadAll(req.Body)
json.Unmarshal(body, &user)
fmt.Println("获取json中的username:", user["username"])
fmt.Println("获取json中的password:", user["password"].(string)) //转字符串通过len(password)!=0判断长度

获取的数据对比:

byte[] 

[123 34 117 115 101 114 110 97 109 101 34 58 34 115 121 115 116 101 109 34 44 34 112 97 115 115 119 111 114 100 34 58 34 49 50 51 52 53 54 34 125]
string
{"username":"system","password":"123456"}

map

map[username:system password:123456]








有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:aqiang912

查看原文:go语言 获取post方式json

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

16467 次点击  ∙  1 赞  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传