У меня возникла странная проблема при использовании веб-сервиса для продукта, купленного моей компанией. Продукт называется Commaign Commander, и это сделано компанией под названием Email Vision. Мы пытаемся использовать "API SOAP для обновления массовой информации".
Всякий раз, когда я пытаюсь вызвать какой-либо из методов в веб-сервисе, вызов на самом деле преуспевает, но клиент терпит неудачу при обработке ответа, и я получаю исключение.
Подробности ошибок приведены ниже, спасибо за любую помощь, которую вы, ребята, можете предложить.
Ошибка использования веб-ссылки (клиент веб-сервиса старого стиля)
При использовании службы в качестве веб-ссылки я получаю InvalidOperationException
для любого вызова, который я делаю, со следующим сообщением:
Client found response content type of 'multipart/related; type="application/xop+xml"; boundary="uuid:170e63fa-183c-4b18-9364-c62ca545a6e0"; start="<[email protected]>"; start-info="text/xml"', but expected 'text/xml'.
The request failed with the error message:
--
--uuid:170e63fa-183c-4b18-9364-c62ca545a6e0
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml";
Content-Transfer-Encoding: binary
Content-ID: <[email protected]>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:openApiConnectionResponse xmlns:ns2="http://api.service.apibatchmember.emailvision.com/" xmlns:ns3="http://exceptions.service.apibatchmember.emailvision.com/">
<return>DpKTe-9swUeOsxhHH9t-uLPeLyg-aa2xk3-aKe9oJ5S9Yymrnuf1FxYnzpaFojsQSkSCbJsZmrZ_d3v2-7Hj</return>
</ns2:openApiConnectionResponse>
</soap:Body>
</soap:Envelope>
--uuid:170e63fa-183c-4b18-9364-c62ca545a6e0--
--.
Как вы можете видеть, конверт soap ответа выглядит действительным (это правильный ответ и успешный вызов), но у клиента возникает проблема с типом контента и генерируется исключение.
Ошибка использования служебной ссылки (клиент WCF)
Когда я использую службу как ссылку на службу, я получаю ProtocolException
для любого вызова, который я делаю, со следующим сообщением:
The content type multipart/related; type="application/xop+xml"; boundary="uuid:af66440a-012e-4444-8814-895c843de5ec"; start="<[email protected]>"; start-info="text/xml" of the response message does not match the content type of the binding (text/xml; charset=utf-8). If using a custom encoder, be sure that the IsContentTypeSupported method is implemented properly. The first 648 bytes of the response were: '
--uuid:af66440a-012e-4444-8814-895c843de5ec
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml";
Content-Transfer-Encoding: binary
Content-ID: <[email protected]>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:openApiConnectionResponse xmlns:ns2="http://api.service.apibatchmember.emailvision.com/" xmlns:ns3="http://exceptions.service.apibatchmember.emailvision.com/">
<return>Dqaqb-MJ9V_eplZ8fPh4tdHUbxM-ZtuZsDG6GalAGZSfSzyxgtuuIxZc3aSsnhI4b0SCbJsZmrZ_d3v2-7G8</return>
</ns2:openApiConnectionResponse>
</soap:Body>
</soap:Envelope>
--uuid:af66440a-012e-4444-8814-895c843de5ec--'.
Как и в предыдущем примере; у нас есть действительный ответ на мыло, и вызов был успешным, но у клиента, похоже, возникла проблема с типом контента и вызвал исключение.
Есть ли какие-либо параметры, которые я могу установить, чтобы у клиента не было проблемы с типом ответа? Я выполнил некоторые поисковые запросы Google, но ничего, что я нашел, помог мне до сих пор.