首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在OpenTest中,我们如何使用formdata而不是json进行POST服务调用呢?

在OpenTest中,我们如何使用formdata而不是json进行POST服务调用呢?
EN

Stack Overflow用户
提问于 2020-07-28 16:18:40
回答 1查看 60关注 0票数 3

我们有一个以formData键值对作为请求的WebService,而不是json。使用openTest,我们如何传递这些formData?基本上,我们需要一个代码片段来发布使用OpenTest yaml脚本的formData

下面是示例curl命令,我们需要使用OpenTest进行post,它的Content-Type为multipart/form-data

代码语言:javascript
复制
`
curl --location --request POST 'https://serviceurl.com/getacb' \
--form 'userKey=a1b23' \
--form 'apiKey=1_ffER_hk6Rb89--2EElfsdeF3' \
--form 'secret=Ude+6NIjojo89/gyAB7huGS5' \
--form 'targetUID=ulknnk4kjlkj5'
`

我们正在寻找一个样本片段来发布上面的multipart/form-data。

EN

回答 1

Stack Overflow用户

发布于 2021-08-05 00:37:54

您需要自己构建FormData()对象,然后才能将其传递给下一个操作。

代码语言:javascript
复制
var data = new FormData();
data.append("userKey", "a1b23");
data.append("apiKey", "1_ffER_hk6Rb89--2EElfsdeF3");
data.append("secret", "Ude+6NIjojo89/gyAB7huGS5");
data.append("targetUID", "ulknnk4kjlkj5");

这是来自OpenTest API testing YAML的一些修改后的示例。

代码语言:javascript
复制
description: Example Post based off SO Question
actors:
  - actor: ACTOR1
    segments:
      - segment: 1
        actions:
          - description: Create a random post ID
            script: | 
              var data = new FormData();
              data.append("userKey", "a1b23");
              data.append("apiKey", "1_ffER_hk6Rb89--2EElfsdeF3");
              data.append("secret", "Ude+6NIjojo89/gyAB7huGS5");
              data.append("targetUID", "ulknnk4kjlkj5");

          - description: Send a request to getacb
            action: org.getopentest.actions.HttpRequest
            args:
              url: https://serviceurl.com/getacb
              headers:
                Content-Type: multipart/form-data
              verb: POST
              body: data

          - description: Extract the response's status code and body
            script: |
              var statusCode = $output.statusCode;
              var postInfo = $output.body;

          - description: Validate the response status code
            script: |
              if (statusCode != 201) {
                $fail($format(
                  "We expected the status code to be {0} but it was {1}",
                  201,
                  statusCode));
              }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63129835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档