我有一个空手道功能,其中有一个没有文件的 POST 多部分表单请求。 我无法访问服务器来调试它或查看代码是如何编写的。 这是功能文件片段:
Given url apiurl
And multipart field RI = xmlRIString
And multipart field CI = xmlCIString
And multipart field BI = xmlBaseString
“xmlRIString”、“xmlCIString”和“xmlBaseString”是 XML 字符串。 这段代码不起作用,我不能 100% 确定原因。我怀疑这些字段由于某种原因是空的。
这是从服务器上运行的 Postman 日志中取出的请求(请求正文已修改为不共享敏感数据):
POST /submit HTTP/1.1
User-Agent: PostmanRuntime/7.22.0
Accept: */*
Cache-Control: no-cache
Postman-Token: ceac2d58-dd33-426b-bde5-26a0846d6385
Host: localhost:8001
Content-Type: multipart/form-data; boundary=--------------------------725566702214297796531881
Accept-Encoding: gzip, deflate, br
Cookie: some-cookie-value-here
Content-Length: 47864
Connection: keep-alive
----------------------------postman
Content-Disposition: form-data; name="RI"
<REQUEST_GROUP>some xml here</REQUEST_GROUP>
----------------------------postman
Content-Disposition: form-data; name="CI"
<REQUEST>some xml here</REQUEST>
----------------------------postman
Content-Disposition: form-data; name="BI"
<ABOUT_VERSIONS>some xml here</ABOUT_VERSIONS>
----------------------------postman--
这也是同样有效的 cURL 请求:
curl --location --request POST 'http://localhost:8001/upload' \
--header 'Content-Type: multipart/form-data; boundary=--------------------------725566702214297796531881' \
--form 'RI=<REQUEST_GROUP>some xml here</REQUEST_GROUP>' \
--form 'CI=<REQUEST>some xml here</REQUEST>' \\
--form 'BI=<ABOUT_VERSIONS>some xml here<ABOUT_VERSION>'
所以我问的问题是我应该如何创建我的空手道功能,这样它就会产生我上面分享的请求。
提前致谢!
您应该能够使用 cURL 命令和
https://httpbin.org/anything
快速解决这个问题
在空手道中尝试这个片段:
* url 'https://httpbin.org/anything'
* multipart field RI = '<foo></foo>'
* multipart field CI = '<bar></bar>'
* multipart field BI = '<baz></baz>'
* method post
您可以看到服务器响应此部分:
"form": {
"BI": "<baz></baz>",
"CI": "<bar></bar>",
"RI": "<foo></foo>"
}
这个 cURL 命令会得到相同的结果:
curl --location --request POST 'https://httpbin.org/anything' \
--form-string 'RI=<foo></foo>' \
--form-string 'CI=<bar></bar>' \
--form-string 'BI=<baz></baz>'
现在您应该能够弄清楚这一点,请注意,通过 cURL 发送 XML 可能很棘手:https://stackoverflow.com/a/72046269/143475