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

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

时间:2024-06-21 10:11:41浏览次数:13  
标签:http form kettle Content 三谈 参数 post

场景:群里有个小伙伴在使用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获取文件。

 

 

 

标签:http,form,kettle,Content,三谈,参数,post
From: https://www.cnblogs.com/zjBoy/p/18255377

相关文章

  • java httpsession
    bychatgpt=>HttpSessionHttpSession是JavaServletAPI提供的一个接口,用于管理与单个用户相关的会话信息。会话(session)是在服务器端保存的与客户端用户交互的一系列请求和响应之间的状态信息。以下是HttpSession的详细解释:HttpSession的作用HttpSession用于在用户的多......
  • WPF控件库 https://wpfui.lepo.co/
    wpfui:一个开源免费具有现代化设计趋势的WPF控件库 https://wpfui.lepo.co/合集-C#(46) 1.使用C#将几个Excel文件合并去重分类2023-11-152.C#使用SqlSugar操作MySQL数据库实现简单的增删改查2023-11-163.C#中的类和继承2023-11-174.C#中的virtual和override关键字2023-......
  • Jmeter中http请求参数为文件类型的使用
    Jmeter中http请求参数为文件类型背景本人在使用jmeter中,一开始一直不知道怎么设置请求中参数是文件类型;因为之前使用的是postman,但postman中如果参数是文件类型,可以直接选择参数类型,切换到file就可以;可能是因为之前一直使用的postman,所以一换到jmeter就不会用。使用创建......
  • pip list https://github.com/pypa/pip 源码
    https://github.com/pypa/pip/blob/main/src/pip/_internal/commands/list.py    packages:"_ProcessedDists"=[      cast("_DistWithLatestInfo",d)      fordinget_environment(options.path).iter_installed_distributions(......
  • 计算机网络:应用层 - 万维网 & HTTP协议
    计算机网络:应用层-万维网&HTTP协议万维网WWW统一资源定位符URL超文本传输协议HTTP非持续连接持续连接非流水线流水线代理服务器HTTP报文万维网WWW万维网是一个大规模的、联机式的信息储藏所。万维网用链接的方法能非常方便地从互联网上的一个站点访问另......
  • springboot——https请求异常Invalid character found in method name. HTTP method n
    遇到问题的情况接口没有配置https,请求时用https会此异常。其他情况1、问题现象java.lang.IllegalArgumentException:Invalidcharacterfoundinmethodname.HTTPmethodnamesmustbetokensatorg.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11Inp......
  • httpsok-v1.13.0支持七牛云证书自动部署
    ......
  • httpsok-v1.13.0支持nginx证书部署管理
    ......
  • HTTP详细总结
    概念HyperTextTransferProtocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。特点基于TCP协议:面向连接,安全TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全。基于请求-响应模型的:一次请......
  • Web之http学习笔记
    目录HTTPurlhttp请求请求行请求方法请求头请求正文http响应响应行状态码响应头响应正文Cookie定义:内容:用途:生命周期:隐私和安全性:Session实现原理组成:PHP中的Session设置函数session传输HTTPhttp文本传输协议(HyperTextTransferProtocol),遵循请求/响应(request/response)模型url......