当前位置: 代码网 > it编程>编程语言>Java > kettle从入门到精通 第七十二课 ETL之kettle 三谈http post(含文件上传),彻底掌握参数传递

kettle从入门到精通 第七十二课 ETL之kettle 三谈http post(含文件上传),彻底掌握参数传递

2024年08月02日 Java 我要评论
4) 查看kettle 源码得知:Java 客户端发送文件时,使用的是直接将文件内容作为请求体的形式,而不是通过标准的文件上传方式,所以request.files 接收不到。2、http post请求参数放到form中,类似于html中的表单提交,Content-Type是application/x-www-form-urlencoded。那就把常用的方式都梳理下,搞定它。3、http post请求参数放到url中,这种方式不常见一般是get请求参数放到url中,Content-Type不限。

场景:群里有个小伙伴在使用http post步骤调用接口时遇到问题,postman调用正常,但是kettle中调用异常。

 解决方案:既然postman调用接口正常,肯定是http post步骤中某些参数设置的不正确导致的。那就把常用的方式都梳理下,搞定它。

 1、http post请求参数放到body中,content-type是application/json。

 1)body参数配置

 2)http head中的content-type配置为application/json。

 3)接口方参数调试

 2、http post请求参数放到form中,类似于html中的表单提交,content-type是application/x-www-form-urlencoded。

1)http head中的content-type配置为application/x-www-form-urlencoded。

 2)body(header) parameters设置。

 3)接口方参数调试

3、http post请求参数放到url中,这种方式不常见一般是get请求参数放到url中,content-type不限。

1)只需要将参数放到url后面即可

 2)接口方参数调试

3、http post 请求参数放到query parameters中,通过kettle源码查看得知这部分参数依然放到body中,而不是放到url后面。

1)源码一窥究竟

如果服务的是java服务,则可以通过request.getparameter("parametername")这种方式获取url和form表单中的参数。

如果服务是python服务,则需要通过request.form来获取query parameters中的参数了。

 2)query parameters参数设置,content-type是application/x-www-form-urlencoded

 3)接口方参数调试,经过调试发现无论python或者是java接收参数,都会出现中文乱码,大神们可以评论区告诉我

4、http post请求参数为文件,相当于文件上传,content-type是multipart/form-data

 1)参数设置,这里需要选中post a file选项。

2)设置content-type为multipart/form-data或者application/octet-stream。

 3)接口方参数调试,经过调试发现python后端需要通过request.data 接收文件,通过request.files 接收不到。

4) 查看kettle 源码得知:java 客户端发送文件时,使用的是直接将文件内容作为请求体的形式,而不是通过标准的文件上传方式,所以request.files 接收不到。

5)标准文件上传代码如下,这种方式可以通过request.files获取文件。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com