Передача списка строк в запросе SOAP во Flutter - PullRequest
0 голосов
/ 10 ноября 2019

Я делаю запрос 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);

Однако этот подходне работает. Было бы очень полезно, если бы кто-нибудь показал мне, как передать список строк в мой запрос. Я использую Флаттер и Дарт. Спасибо

1 Ответ

0 голосов
/ 10 ноября 2019

Просто отобразите список строк и затем присоединитесь к нему:

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

отпечатки:

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

Также есть пакет дляработа с XML. Он позволяет вам анализировать и создавать XML-документы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...