в

Kazan Dev Alliance

Казанское Сообщество Разработчиков Программного Обеспечения

Персональный блог Зильберга Игоря

Персональный блог Зильберга Игоря (участник сообщества, генеральный директор SmartHead, LTD).

July 2007 - Posts

  • Delphi-клиент, .NET Web-Service и великий и могучий :)

    Совсем недавно для одного из наших заказчиков было необходимо реализовать интеграцию каталога сайта с самописной (на Delphi) складской системой…

    Казалось бы проблем никаких - сайт написан на ASP.NET 2.0, БД на SQL Server 2005, зная, что в Delphi 7 уже реализована поддержка SOAP веб-служб, решили просто написать веб-службу, интегрированную с базой данных сайта и через нее осуществить интеграцию со складской системой.

    Задача как и предполагалось оказалась довольно простой. В Delphi 7 есть мастер WSDL Importer, который с легкостью сгенерировал прокси для нашей службы. Но при попытке использовать этот прокси и обратиться к веб-службе мы столкнулись с интересной проблемой: при передаче из Delphi -клиента в веб-сервис сообщения, содержащего русские символы в веб-сервис они приходили в виде знаков вопроса.

    Пытались перекодировать все и вся:) Результатов - ноль. Гугл ничего, кроме тривиальных советов изменить кодировку в секции <globalization/> в конфиг-файле не дает.

    Решение, как всегда, оказалось на поверхности. Сравнивая запросы стандартного .NET-клиента и Delphi-клиента с помощью SoapExtentions обнаружили, что первый передает HTTP-заголовок "Content-Encoding: text/xml, charset=utf8", а второй - "Content-Encoding: text/xml". Именно тут-то собака и порылась:)

    Как оказалось, проблема решается добавлением строки RIO.HTTPWebNode.UseUTF8InHeader := true; в функцию GetIntegrationServiceSoap, которая находится в прокси-классе, сгенерированном WSDL Importer`ом.

  • Встречи .NET сообщества

    Собственно вопрос: Будем встречаться этим летом? Или все разъехались уже?

© 2007 Kazan Developers Community and Post`s Authors