После нескольких учебных пособий (практически во всех учебных пособиях по Фаренгейту до Цельсия) я по-прежнему не понимаю, как на самом деле получить нужные мне данные и настроить запрос должным образом. Основная проблема становится внутри заголовка и придание ему PARTNERID внутри <AccountInfo/>.
Android: как получить данные из заголовка и тела с помощью KSOAP2
мне нужно дать ему следующие параметры в теле запроса:
<keyword>string</keyword>
<records>int</records>
<startingRecord>int</startingRecord>
<searchOptions>ID</searchOptions>
Может кто-нибудь объяснить, как добиться этого ?
POST /service/searchapi.asmx HTTP/1.1
Host: uk.company.com
Content-Type: text/xml; charset=utf-8
Content-Length: length
SOAPAction: "http://api.company.com/service/SearchByKeyword"
<?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:Header>
<CompanyHeader xmlns="http://api.company.com/service">
<AccountInfo>
<PartnerID>string</PartnerID>
</AccountInfo>
</CompanyHeader>
</soap:Header>
<soap:Body>
<SearchByKeyword xmlns="http://api.company.com/service">
<keyword>string</keyword>
<records>int</records>
<startingRecord>int</startingRecord>
<searchOptions>ID</searchOptions>
</SearchByKeyword>
</soap:Body>
</soap:Envelope>
Не препятствуйте вам, но андроид не имел поддержки SOAP в прошлом, и я не могу найти что-либо об этом, поддерживаемом сейчас. Есть куча сторонних библиотек, которые помогут вам в этом, но SOAP очень сильно развивается по сравнению с JSON и андроидными изменениями настолько быстро, что этим библиотекам, похоже, нелегко идти в ногу. Если вы также настраиваете webservice, тогда вам лучше с JSON и, возможно, библиотекой преобразования GSON в моем опыте, если вам не удастся. –
К сожалению, веб-служба уже существует, и они не намерены ее изменять:/Я нашел несколько похожих примеров запросов, но все они имеют другое форматирование в соответствии с показанным в вопросе. Заголовок, в частности, проблематичен. Многие из учебных пособий, похоже, не показывают или не объясняют, как это достигается для более сложного примера, чем преобразователь температуры, так что я немного потерял его с уменьшением. В предыдущем проекте участвовал JSON, и я бы хотел, чтобы это тоже было ахаха. Спасибо за ответ вне зависимости – devchimp
Ouch. Я перепутал с SOAP примерно неделю назад, я помню, что основная проблема заключалась в том, что вам нужно DTD для правильной интерпретации сообщений, так как это не RESTful, но андроид изначально использует скомпилированный xml, а не фактический xml, поэтому нет поддержки для добавления DTD для ресурсов разумным образом. Вам придется добавить его в активы, а затем запустить стороннюю библиотеку для работы с вашей другой сторонней библиотекой для интерпретации сообщений SOAP или чего-то запутанного, неподотчетного и высокопроизводительного. Было бы проще настроить еще один веб-сервис, который преобразует SOAP в JSON. –