热门标签 | 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框架中的不同类型的数据请求以及返回不同的数据格式。



推荐阅读
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • 本文主要解析了Open judge C16H问题中涉及到的Magical Balls的快速幂和逆元算法,并给出了问题的解析和解决方法。详细介绍了问题的背景和规则,并给出了相应的算法解析和实现步骤。通过本文的解析,读者可以更好地理解和解决Open judge C16H问题中的Magical Balls部分。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • PDO MySQL
    PDOMySQL如果文章有成千上万篇,该怎样保存?数据保存有多种方式,比如单机文件、单机数据库(SQLite)、网络数据库(MySQL、MariaDB)等等。根据项目来选择,做We ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
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社区 版权所有