Feign表单提交
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Feign表单提交相关的知识,希望对你有一定的参考价值。
参考技术A Feign在正常调用的时候,一般都是基于 application/json 的方式进行传输数据的,但是有时候我们内部调用的服务是基于 表单提交 的,默认使用的 JSON 提交。所以就需要对请求进行改造。上面的就是默认的方式
使用表单的情况下,需要引入两个jar,使用maven 进行添加
定义表单解码器
使用
上面定义的接收使用Response,有时候我们需要验证签名的时候,sign一般在header中,如果直接使用对象接收,就没有办法进行签名验证,使用Response进行接收,通过 response.body().asReader() 方法取出body中的内容再进行处理。
Feign form 表单提交的坑
模块
模块的定义:一个py文件就是一个模块,是封装语句的最小单位
模块被另一个模块导入时,其中的可执行语句(print、定格的for循环等)会立即执行
例1:
模块 model_file.py
的内容
a = 1
print(‘a=‘, a)
for i in range(5):
print(i)
def func():
print(‘function in model_file.py‘)
模块 test_file.py
的内容
import model_file # 右键运行
运行结果:
a= 1
0
1
2
3
4
func函数不是可执行语句,所以没有输出,如果加了func(),就会输出
模块的特殊方法
详见特殊方法详解
模块的运行方式
- 脚本方式:直接在终端用
python 模块名.py
的方式运行,或者在pycharm中右键运行
- 模块方式:被其他模块导入,为导入它的模块提供资源(变量,函数,类等)
模块的导入方式
-
如果之前成功导入过某个模块,直接使用已经存在的模块
-
内置模块的路径:
Windows:安装目录的
Lib
目录中都是系统内置的模块,在site-packages
中都是下载的第三方的模块Linux:/usr/lib64/python3.6
方式一:import
导入一个模块的所有成员,如果要一次性导入多个,用逗号分隔
语法:
导入一个:import 模块名
导入多个:import 模块名1, 模块名2, 模块名3, 模块名n
注意:
可以在模块名后使用 as
给导入的模块名取一个别名
例1:
import os, sys
import time as t, os as o
方式二:from import
从模块中导入指定的成员,如果要导入多个成员,用逗号分隔,如果要导入全部成员,用星号(*)
语法:
导入一个成员:from 模块名 import 成员
导入多个成员:from 模块名 import 成员1, 成员2, 成员3, 成员n
导入全部成员:from 模块名 import *
注意:
可以在成员名后使用 as
给导入的成员取一个别名
例2:
from time import time
from time import time as t, tzname as name
print(t())
print(name)
1596622197.6038888
(‘CST‘, ‘CST‘)
import 和from import的区别
import导入的方式在调用的时候,需要在使用 模块名.成员名
的方式调用,不容易产生命名冲突
from import的导入方式可以直接使用,无需使用模块名,容易产生命名冲突,可使用 as
解决
相对导入
. 当前目录
.. 当前目录的父目录
... 当前目录父目录的父目录
以上是关于Feign表单提交的主要内容,如果未能解决你的问题,请参考以下文章