Я пытаюсь преобразовать запрос мыла, написанный для C #, в запрос gSoap в Visual C ++.
Запрос C # добавляет узел XML к вызову запроса, чтобы передать параметры в запрос:
XmlNode queryOpts = xmlDoc.CreateNode(XmlNodeType.Element, "QueryOptions", "");
queryOpts.InnerXml = "<DateInUtc>TRUE</DateInUtc>";
Вот запрос C #, передающий различные аргументы (некоторые аргументы указаны как объекты XmlNode)
XmlNode nodeListItems = listService.GetListItems("Announcements", null, query, viewFields, null, queryOpts, null);
Запрос C ++ / gSoap позволяет мне передать объект запроса и ответа:
listService.__ns10__GetListItems(&announcementQuery, &announcementResponse)
Объект запроса имеет различные свойства, которые можно установить, связанные с аргументами в вызове C #:
announcementQuery.listName
announcementQuery.query
announcementQuery.queryOptions
announcementQuery.viewFields
Первый аргумент: строка, нет проблем.
query, queryOptions и viewFields немного сбивают с толку.
«запрос» - это класс типа _ns2__GetListItems_query, и он имеет следующие функции и члены:
soap_default()
soap_get()
soap_in()
soap_out()
soap_put()
soap_serialize()
soap_type()
__any
__mixed
для query, queryOptions и viewFields я просто хотел бы указать строку в формате xml, как это делает код C #, но я не уверен, как это сделать.
Может ли кто-нибудь применить этот опыт?
спасибо!