热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

unityhtmlgetpost,GoWeb开发_Iris框架讲解(二):Get、Post、Put等请求及数据返回格式...

数据请求方式的分类所有的项目中使用的请求都遵循HTTP协议标准,HTTP协议经过了1.0和1.1两个版本的发展。HTTP1.0定义了三种请求方法:GET

数据请求方式的分类

所有的项目中使用的请求都遵循HTTP协议标准,HTTP协议经过了1.0和1.1两个版本的发展。

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。

HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

因此,我们可以说,HTTP协议一共定义了八种方法用来对Request-URI网络资源的不同操作方式,这些操作具体为:GET、POST、PUT、DELETE、HEAD、OPTIONS、TRACE、CONNECT等八种操作方式。

Iris框架的请求处理方式

1、Iris框架中服务实例app中包含多个方法,用来支持对上述HTTP多种请求类型的直接处理,直接定义为get方法、post方法、put方法等,app中包含的自动处理路由请求的方法与http请求类型的分类一致。

2、除了上述1中自动处理各类别的请求外,框架还支持使用通用的Handle方法来自定义编写自己的请求处理类型及对应的方法。

两种路由请求的处理方式示例如下:

app := iris.New()

//url: http://localhost:8000/getRequest

//type:GET请求

app.Get("/getRequest", func(context context.Context) {

path := context.Path()

app.Logger().Info(path)

})

//url: http://localhost:/user/info

//type:POST请求

app.Handle("POST", "/user/info", func(context context.Context) {

context.WriteString(" User Info is Post Request , Deal is in handle func ")

})

//启动端口监听服务

app.Run(iris.Addr(":8000"))

GET请求

向特定的网络资源数据发起请求。GET请求可以携带请求数据,携带的请求数据会以?分割URL和传输数据,参数之间以&相连,比如

http://localhost:8000/userpath

服务端的路由处理方式如下:

//url:http://localhost:8000/userpath

//type:GET请求、用GET方法处理

app.Get("/userpath", func(context context.Context) {

//获取Path

path := context.Path()

//日志输出

app.Logger().Info(path)

//写入返回数据:string类型

context.WriteString("请求路径:" + path)

})

上述为使用已经封装的默认的app.Get方式来处理请求,使用Handle方法来进行处理,如下所示:

//url:http://localhost:8000/hello

//type:GET请求、Handle方法第一个参数为GET,表明是GET请求方式

app.Handle("GET", "/hello", func(context context.Context) {

context.HTML("

Hello world. ")

})

POST请求

POST请求在进行请求时会将请求数据放在请求body中进行请求,请求数据大小没有限制。在开发过程中,我们使用postman工具来进行POST请求的调试。POST请求的示例如下所示:

http://localhost:8000/postLogin

服务端的路由处理方式如下:

//type:POST请求

//携带数据:name、pwd命名的请求数据

app.Post("/postLogin", func(context context.Context) {

//获取请求path

path := context.Path()

//日志

app.Logger().Info(path)

//获取请求数据字段

name := context.PostValue("name")

pwd, err := context.PostValueInt("pwd")

if err != nil {

panic(err.Error())

}

app.Logger().Info(name, " ", pwd)

//返回

context.HTML(name)

})

上述为使用默认路由请求方法Post方法来进行处理,同时,还可以使用Handle方法来进行处理,如下图:

//url:http://localhost:8000/user/info

//type:POST请求,Handle方法第一个参数为POST,表明是Post请求

app.Handle("POST", "/user/info", func(context context.Context) {

context.WriteString(" User Info is Post Request , Deal is in handle func ")

})

PUT、DELETE、OPTIONS、HEAD等其他类型请求

除了上述GET、POST最为常见的两种请求方式以外,还有PUT、DELETE、OPTIONS、HEAD等其他类型请求,对于其他类型的请求,如同GET和POST请求一样,都是可以通过两种方式来进行处理:

1、iris框架提供的自动识别请求类型的处理请求方法,如put方法、head方法、options方法、delete方法等

2、使用通用的Handle方法对路由请求进行处理,开发者自己选择具体的请求类型以、对应url和要进行处理的func。

如下是put和delete的请求处理: PUT请求

//type:PUT类型请求

app.Put("/putinfo", func(context context.Context) {

path := context.Path()

app.Logger().Info("请求url:", path)

})

DELETE请求

//type:DELETE类型请求

app.Delete("/deleteuser", func(context context.Context) {

path := context.Path()

app.Logger().Info("Delete请求url:", path)

})

请求处理的数据格式返回

在本节课程中,我们已经学习了如何对不同类型的请求进行处理以及如何获取请求所携带的数据,当后台接收到请求后,将会对请求进行处理,处理完毕后将数据返回给请求的客户端。接下来,我们看一看如何将数据进行返回,以及都有哪些形式。

在进行请求处理时,处理方法func有一个参数context。Context是用于处理请求的上下文环境变量,用于处理http请求及相关数据返回。iris框架支持多种数据格式的返回,此处我们学习掌握返回string、json、xml以及html格式的数据。

返回string类型数据

context.WriteString("hello world")

返回json格式的数据

context.JSON(iris.Map{"message": "hello word", "requestCode": 200})

返回xml格式的数据

context.XML(Person{Name: "Davie", Age: 18})

返回html格式数据

context.HTML("

Davie, 12 ")

通过本节课的内容,我们学习了iris框架中的不同类型的数据请求以及返回不同的数据格式。



推荐阅读
  • 本文探讨了如何通过优化 DOM 操作来提升 JavaScript 的性能,包括使用 `createElement` 函数、动画元素、理解重绘事件及处理鼠标滚动事件等关键主题。 ... [详细]
  • 近期尝试从www.hub.sciverse.com网站通过编程手段获取数据时遇到问题,起初尝试使用WebBrowser控件进行数据抓取,但发现使用GET方法翻页时,返回的HTML代码始终相同。进一步探究后了解到,该网站的数据是通过Ajax异步加载的,可通过HTTP查看详细的JSON响应。 ... [详细]
  • Requests库的基本使用方法
    本文介绍了Python中Requests库的基础用法,包括如何安装、GET和POST请求的实现、如何处理Cookies和Headers,以及如何解析JSON响应。相比urllib库,Requests库提供了更为简洁高效的接口来处理HTTP请求。 ... [详细]
  • 深入理解:AJAX学习指南
    本文详细探讨了AJAX的基本概念、工作原理及其在现代Web开发中的应用,旨在为初学者提供全面的学习资料。 ... [详细]
  • Bootstrap Paginator 分页插件详解与应用
    本文深入探讨了Bootstrap Paginator这款流行的JavaScript分页插件,提供了详细的使用指南和示例代码,旨在帮助开发者更好地理解和利用该工具进行高效的数据展示。 ... [详细]
  • 如何高效解决Android应用ANR问题?
    本文介绍了ANR(应用程序无响应)的基本概念、常见原因及其解决方案,并提供了实用的工具和技巧帮助开发者快速定位和解决ANR问题,提高应用的用户体验。 ... [详细]
  • 本文介绍了如何通过 XMLHttpRequest 对象在不同浏览器中实现 AJAX 的 POST 和 GET 请求,并详细说明了 XMLHttpRequest 的五个状态及其含义。 ... [详细]
  • Spring Boot使用AJAX从数据库读取数据异步刷新前端表格
      近期项目需要是实现一个通过筛选选取所需数据刷新表格的功能,因为表格只占页面的一小部分,不希望整个也页面都随之刷新,所以首先想到了使用AJAX来实现。  以下介绍解决方法(请忽视 ... [详细]
  • 在现代Web开发中,HTML5 Canvas常用于图像处理和绘图任务。本文将详细介绍如何将Canvas中的图像导出并上传至服务器,适用于拼图、图片编辑等场景。 ... [详细]
  • php三角形面积,335宝石大全
    php三角形面积,335宝石大全 ... [详细]
  • 在尝试加载支持推送通知的iOS应用程序的Ad Hoc构建时,遇到了‘no valid aps-environment entitlement found for application’的错误提示。本文将探讨此错误的原因及多种可能的解决方案。 ... [详细]
  • Maven + Spring + MyBatis + MySQL 环境搭建与实例解析
    本文详细介绍如何使用MySQL数据库进行环境搭建,包括创建数据库表并插入示例数据。随后,逐步指导如何配置Maven项目,整合Spring框架与MyBatis,实现高效的数据访问。 ... [详细]
  • 本文将从基础概念入手,详细探讨SpringMVC框架中DispatcherServlet如何通过HandlerMapping进行请求分发,以及其背后的源码实现细节。 ... [详细]
  • C# 中创建和执行存储过程的方法
    本文详细介绍了如何使用 C# 创建和调用 SQL Server 存储过程,包括连接数据库、定义命令类型、设置参数等步骤。 ... [详细]
  • 尽管Medium是一个优秀的发布平台,但在其之外拥有自己的博客仍然非常重要。这不仅提供了另一个与读者互动的渠道,还能确保您的内容安全。本文将介绍如何使用Bash脚本将Medium文章迁移到个人博客。 ... [详细]
author-avatar
想翻身的咸鱼。。。
你个家伙才懒。。。
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有