答:setAttribute(Stringname,Object):设置名字为name的request的参数值
getAttribute(Stringname):返回由name指定的属性值
getAttributeNames():返回request对象所有属性的名字集合,结果是一个枚举的实例
getCookies():返回客户端的所有Cookie对象,结果是一个Cookie数组
getCharacterEncoding():返回请求中的字符编码方式
getContentLength():返回请求的Body的长度
getHeader(Stringname):获得>
getHeaders(Stringname):返回指定名字的requestHeader的所有值,结果是一个枚举的实例
getHeaderNames():返回所以requestHeader的名字,结果是一个枚举的实例
getInputStream():返回请求的输入流,用于获得请求中的数据
getMethod():获得客户端向服务器端传送数据的方法
getParameter(Stringname):获得客户端传送给服务器端的有name指定的参数值
getParameterNames():获得客户端传送给服务器端的所有参数的名字,结果是一个枚举的实例
getParameterValues(Stringname):获得有name指定的参数的所有值
getProtocol():获取客户端向服务器端传送数据所依据的协议名称
getQueryString():获得查询字符串
getRequestURI():获取发出请求字符串的客户端地址
getRemoteAddr():获取客户端的IP地址
getRemoteHost():获取客户端的名字
getSession([Booleancreate]):返回和请求相关Session
getServerName():获取服务器的名字
getServletPath():获取客户端所请求的脚本文件的路径
getServerPort():获取服务器的端口号
removeAttribute(Stringname):删除请求中的一个属性
POST请求时
@RequestBody --> JSON字符串部分
@RequestParam --> 请求参数部分
application/json格局图
1、从content-type方面总结:
① form-data、x->
当您需要将数据从客户端(例如浏览器)发送到API时,可以将其作为 “请求体” 发送。
请求体 是客户端发送到您的API的数据。 响应体 是您的API发送给客户端的数据。
API几乎总是必须发送一个 响应体 ,但是客户端并不需要一直发送 请求体 。
定义 请求体 ,需要使用 Pydantic 模型 。
例如,上面的模型 Item 声明了一个 JSON 对象(或Python dict ),例如:
description 和 tax 属性是可选的(因为有默认值 None ),所以下面这个 JSON 对象也是有效的:
将上面定义的模型添加到你的路径 *** 作中,就和定义Path和Query参数一样的方式:
声明参数的类型为你创建的模型 Item
通过那样定义Python 类型为 pydantic 的 model , FastAPI 将会:
模型的 JSON Schema 将成为OpenAPI生成模式的一部分,并将显示在交互式API文档中:
并且还将在需要它们的每个路径 *** 作的API文档中使用:
在你的编辑器中,编写的函数中,你将会获得类型提示和补全:
您也会获得类型 *** 作错误检查:
Pydantic 本身甚至进行了一些更改以支持此 *** 作。
但是您可以通过 PyCharm 和大多数其他Python编辑器获得相同的编辑器支持:
在函数内部,您可以直接访问模型对象的所有属性:
你可以同时定义 Path参数 和 请求体参数
你可以同时定义 Path参数 、 Query参数 和 请求体参数
FastAPI 将识别它们中的每一个并从正确的位置获取数据。
@RequestParam
A)
常用来处理简单类型的绑定,通过RequestgetParameter() 获取的String可直接转换为简单类型的情况( 由String到
简单类型的转换 *** 作由ConversionService配置的转换器来完成);因为使用requestgetParameter()方式获取参数,所以可以处理get
方式中queryString的值,也可以处理post方式中 body data的值。
B)用来处理Content-Type: 为 application/x->
其实就是参考的@RequestBody注解来实现,@JsonParam可以看着为轻量级的获取Json参数的自定义实现注解。
因为流只能读取一次,所以需要在第一次读取的时候,将解析的对象存入ThreadLocal中,以便于多次使用@JsonParam来进行解析。
SpringBoot2x之HandlerMethodArgumentResolver实战
SpringBoot2x之HandlerMethodArgumentResolver(2)—自定义解析器顺序
以上就是关于java中Request对象的主要方法有哪些全部的内容,包括:java中Request对象的主要方法有哪些、POST/GET请求中RequestBody和RequestParam的应用场景、fastapi教程翻译(四):Request Body(请求体)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)