获取前端传来的参数

获取数据并转为对应的类型

- ?id=111&id=122
c.GetInt("id")
int,111 - ?id=111&id=122
c.GetBool("id")
bool,false - ?id=111&id=122
c.GetString("id")
string,"111" - ?id=111&id=122
c.GetStrings("id")
[]string,[]string{"111", "122"} - ?id=111&id=122
c.Input().Get("id")
string,"111"

解析表单

  • c.ParseForm 直接解析到 struct
type user struct {
Id int `form:"-"`
Name interface{} `form:"name"`
Age int `form:"age"`
Email string
} func (c *MainController) Post() {
u := user{}
c.ParseForm(&u) fmt.Printf("%T,%#v\n", u, u)
c.Ctx.WriteString("hello")
}

解析Request Body

  • 获取 Request Body 里的内容
type user struct {
Id int `json:"-"`
Name interface{} `json:"name"`
Age int `json:"age"`
Email string
} func (c *MainController) Post() {
var u user
json.Unmarshal(c.Ctx.Input.RequestBody, &u)
fmt.Printf("%T,%#v\n", u, u)
c.Ctx.WriteString("hello")
}

上传文件

<form enctype="multipart/form-data" method="post" action="http://localhost:8080/">
<input type="file" name="uploadname" />
<input type="submit">
</form> func (c *MainController) Post() {
f, h, err := c.GetFile("uploadname")
if err != nil {
log.Fatal("getfile err ", err)
}
fmt.Printf("%T,%#v\n", f, f)
defer f.Close()
c.SaveToFile("uploadname", "static/upload/" + h.Filename) // 保存位置在 static/upload, 没有文件夹要先创建
c.Ctx.WriteString("post")
}

后端返回数据到前端

  • 返回字符串
c.Ctx.WriteString("<h1>hello world</h1>")
  • 返回模板html
c.Data["name"] = "mm"
c.Data["age"] = 22
c.TplName = "user.html" <body>
<h1>user</h1>
{{.name}}
{{.age}}
</body>
  • 返回json
type user struct {
Name string `json:"name"`
Age int `json:"age"`
Birth time.Time `json:"birth"`
} func (u *UserController) Get() {
var p1 = &user{
Name: "mm",
Age: 22,
Birth: time.Now(),
} u.Data["json"] = p1
u.ServeJSON()
}

[go]beego获取参数/返回参数的更多相关文章

  1. beego获取用户请求参数的方法

    我们经常需要获取用户传递的数据,包括 Get.POST 等方式的请求,beego 里面会自动解析这些数据,你可以通过如下方式获取数据: GetString(key string) string Get ...

  2. loadrunner获取接口返回参数(包括body,headers等)

    Action() { web_set_max_html_param_len("); // 默认最大长度为256 web_reg_save_param("ResponseBody&q ...

  3. 百度统计api 关于搜索引擎返回参数问题

    当 post 的参数: 返回参数为: 很显然没有搜索引擎的相关名称返回,无法分辨相关引擎的数据量: 改:去掉 gran 参数 正常: 关于百度统计文档有很多模糊不清的地方,可以发邮件给官方了解,一般处 ...

  4. 对接第三方支付接口-获取http中的返回参数

    这几天对接第三方支付接口,在回调通知里获取返回参数,有一家返回的json格式,请求参数可以从标准输入流中获取. //1.解析参数 , 读取请求内容 BufferedReader br; String ...

  5. SubSonic3.0使用存储过程查询时,不能使用output参数返回值的问题修改

    有个群友问SubSonic3.0执行存储过程时能不能使用output参数返回值,说测试过后获取不到返回值,早上有些时间所以就尝试修改了一下 首先在数据库中创建一个存储过程 CREATE PROCEDU ...

  6. Javascript 获取链接(url)参数的方法

    有时我们需要在客户端获取链接参数,一个常见的方法是将链接当做字符串,按照链接的格式分解,然后获取对应的参数值.本文给出的就是这个流程的具体实现方法. 当然,我们也可以用正则直接匹配,文章中也给出了一个 ...

  7. Js获取指定Url参数

    在 C#.PHP.JSP 中,都有直接获取 Url 中指定参数的方法,但 Javascript 却没有这样的现在方法,得自己写一个.在 Web 的开发过程中,获取 Url 中的参数是十分常用的操作,所 ...

  8. jqure 获取地址栏的参数

    从一个页面跳转到另外一个页面传参,我们用jqure得到参数需要两部分: 处理浏览器地址栏参数的方法: function GetQueryString(name) { var reg = new Reg ...

  9. Asp获取网址相关参数大全

      Asp获取网址相关参数大全 代码一:[获取地址中的文件名,不包含扩展名]<%dim Url,FileName,File Url=split(request.servervariables(& ...

随机推荐

  1. ubuntu16.04环境LNMP实现PHP5.6和PHP7.2

    最近因为公司突然间说要升级php7,所以做个记录 PPA 方式安装 php7.2 : sudo apt-get install software-properties-common 添加 php7 的 ...

  2. 最贵的AMD 7nm显卡来了!这设计 够狂野

    ROG STRIX系列配备三个风扇(支持智能启停).多条热管.金属背板,厚度达2.5个插槽位,另有两个8针辅助供电,因此最大供电能力375W,必然会预先大幅超频,而且应该仍有手动超频空间,当然也少不了 ...

  3. 8.4.Zookeeper结构和命令

    1. Zookeeper结构 1.1.ZooKeeper数据模型Znode ZooKeeper拥有一个层次化的目录结构,命名符合常规文件系统规范 ZooKeeper树中的每个节点被称为—Znode,和 ...

  4. c++四种分配内存的方法整理

    1 calloc 函数: void *calloc(unsigned int num, unsigned int size) 按照所给的数据个数和数据类型所占字节数,分配一个 num * size 连 ...

  5. 延长zencart1.5.x后台的15分钟登录时间和取消90天强制更换密码

    延长zencart1.5.x后台的15分钟登录时间 打开includes\functions\sessions.php if (IS_ADMIN_FLAG === true) { if (!$SESS ...

  6. Linux用户影子文件——shadow

    Linux使用不可逆的加密算法(如MD5,SHA1等)来加密口令.和/etc/passwd类似,/etc/shadow文件中每条记录用冒号“:”分隔,形成9个域,格式如下所示: username:pa ...

  7. Vue学习日记(四)——Vue状态管理vuex

    前言 先说句前话,如果不是接触大型项目,不需要有多个子页面,不使用vuex也是完全可以的. 说实在话,我在阅读vuex文档的时候,也很难以去理解vuex,甚至觉得没有使用它我也可以.但是直到我在项目碰 ...

  8. Quartus 18 新手使用教程

    最近需要做个小作品,用到了Quartus 18,本人采用vhdl语言进行的开发,过程如下. 1.点击新建一个工程 ​ 2.选择工程保存的路径,填写工程名称 ​ 3.选择工程类型为空的工程 ​ 4.不添 ...

  9. vscode安装eslint插件,代码统一自动修复

    ESlint:是用来统一JavaScript代码风格的工具,不包含css.html等. 方法和步骤: 通常情况下vue项目都会添加eslint组件,我们可以查看webpack的配置文件package. ...

  10. .net大文件传输断点续传源码

    IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头. 一. 两个必要响应头Accept-Ranges.ETag 客户端每次提交下载请求时,服务 ...