在Flutter中的SOAP请求中传递字符串列表



我正在进行SOAP请求,这就是我的请求应该发送的方式:

<id></id>
<fieldList>
<string>string</string>
<string>string</string>
</fieldList>

这就是我构建信封的方式:

final int id = 21;
List<String> fieldList = new List<String>();
fieldList = [
"pinNumber:PIN0000074",
"dispatchArrivedTime:13.05",
"towedStatus:C"
];
var envelope = "<?xml version="1.0" encoding="utf-8"?>"
"<soap:Envelope "
"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" "
"xmlns:xsd="http://www.w3.org/2001/XMLSchema" "
"xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">"
"<soap:Body>"
"<update xmlns="http://example.com/">"
"<id>${id}</id>"
"<fieldList>${fieldList}</fieldList>"
"</update>"
"</soap:Body>"
"</soap:Envelope>";
final response = await http.post(
'http://example.com/vc/ws/towedvehicletable.asmx',
headers: {
"Content-Type": "text/xml; charset=utf-8",
"SOAPAction": "http://example.com/update",
"Host": "example.com"
//"Accept": "text/xml"
},
body: envelope);

然而,这种方法并不奏效。如果有人能告诉我如何将字符串列表传递到我的请求中,那将非常有帮助。我正在使用长笛和飞镖。感谢

只需映射字符串列表,然后加入它:

List<String> fieldList = ['test1', 'test2'];
final xmlValues = fieldList.map((v) => '<string>$v</string>').join();
print(xmlValues);

打印:

<string>test1</string><string>test2</string>

还有一个用于处理XML的包。它允许您解析和构造XML文档。

最新更新