在SOAP-UI中,我正在向这样的Web服务发出请求:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xxx="http://xxx.call/">
<soapenv:Header/>
<soapenv:Body>
<cotf:call_XXX>
<!--Optional:-->
<arg0>
<!--Optional:-->
<parameter1>some text</parameter1>
<!--Optional:-->
<parameter2>XML string</parameter1>
</arg0>
</cotf:call_XXX>
</soapenv:Body>
</soapenv:Envelope>
我想知道的是如何在参数2上传递XML字符串,因为如果我直接放置XML字符串,它会将XML字符串节点视为请求参数....
由于
答案 0 :(得分:108)
编码所需的XML实体或使用CDATA。
<arg0>
<!--Optional:-->
<parameter1><test>like this</test></parameter1>
<!--Optional:-->
<parameter2><![CDATA[<test>or like this</test>]]></parameter2>
</arg0>
答案 1 :(得分:1)
注意:这只是以前提供的.NET framework 3.5及更高版本
的替代方案您可以将其作为原始xml
发送<test>or like this</test>
如果您将paramater2声明为XElement数据类型
答案 2 :(得分:0)
要在请求对象中发送CDATA,请使用#include <iostream>
#include <thread>
void Foo(int& i)
{
// if thread t is executing this function then j will sit inside thread t's stack
// if we call this function from the main thread then j will sit inside the main stack
int j = 456;
i++; // we can see i because threads share the same address space
}
int main()
{
int i = 123; // this will sit inside the main threads' stack
std::thread t(std::bind(&Foo, std::ref(i))); // we pass the address of i to our thread
t.join();
std::cout << i << '\n';
return 0;
}
方法。