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表单提交的主要内容,如果未能解决你的问题,请参考以下文章

vue表单提交怎么写

新手求助,表单数据提交不到后台

怎么使用jquery提交表单

HTML 表单提交 的简单代码

easyui表单提交问题

php避免form表单重复提交