如何使用post方法

时间:2018-02-13 10:07:15

标签: talend

我想使用post方法发送多个http请求。 我正在使用tHttpRequest来调用这样的api:

enter image description here

我正在使用带有从.txt文件读取的参数的post方法。如下所示:

login_id=7777&system_cd=1&role_cd=1
login_id=9999999999999&system_cd=1&role_cd=1

有效。但是它发送了第一个参数行

的两个请求
login_id=7777&system_cd=1&role_cd=1

但是第二个参数行没有发送

login_id=9999999999999&system_cd=1&role_cd=1

如何使用post方法发送多个请求?

更新

非常感谢你!它对我来说非常适合。

但它只写了对日志文件的成功响应

我想在同一个文件中写下所有回复(成功回复而非成功回复)

我该怎么做?

enter image description here

2 个答案:

答案 0 :(得分:2)

因此,您希望为参数文件中的每一行发出一个发布请求。以下是您如何实现这一目标:

tFileInputFullRow -- Main -- tFlowToIterate -- iterate -- tFixedFlowInput -- Main -- tFileOutputRaw (temp file) -- OnComponentOk -- tHttpRequest_1 (read temp file) -- main -- tFileOutputDelimited_1

这样做,循环遍历参数文件中的行,并为每一行创建一个包含该单行的文件(使用由tFixedFlowInput设置的全局变量读取tFlowToIterate中的行并将其输出到文件中),然后通过指定新创建的文件来读取参数来调用tHttpRequest

修改

据我所知,您希望将响应以及错误消息(如果有)写入同一文件。以下是您可以这样做的方法:

enter image description here

If触发器中,您需要测试tHttpRequest_1的响应代码:

((Integer)globalMap.get("tHttpRequest_1_RESPONSE_CODE")) != 200

如果请求返回错误代码,则读取错误消息(String)globalMap.get("tHttpRequest_1_ERROR_MESSAGE")并将其写入tFileOutputDelimited_2

中的同一物理文件

答案 1 :(得分:1)

您可以将包含您的请求正文的文件传递给Post parameters from file

像这样。

{
 "login": [
 {
   "login_id":9999999999999,
   "system_cd":1,
   "role_cd":1  
 },
 {
   "login_id":8888888888,
   "system_cd":3,
   "role_cd":2
 }
 ]
}

enter image description here

可以参考这个文档。 https://help.talend.com/reader/MjIZDoU6r0vLbCpGh5GAcg/WjbsVyUCV2MD8C7_uVYKRA