2010-04-21 7 views
0

Я вызываю веб-службу (написанную на Java) в своем веб-приложении. Я использую WSDL для создания прокси-классов с помощью инструмента командной строки wsdl.exe.Проверка вызова веб-службы перед схемой перед отправкой запроса

Все работает нормально.

Однако, я выяснил, что веб-служба вообще не выполняет проверку данных, когда получает запрос от моего приложения. Следовательно, если мне посчастливится отправить одну минуту данных, которые не совсем то, что они хотят, я получаю общую ошибку ошибки взамен, без каких-либо специфических особенностей того, что является неправильной (если есть) частью данных.

Итак, прежде чем я сделаю запрос, я хотел бы подтвердить свой запрос в отношении схемы, которую они предоставили. Возможно ли это, и если да, то как мне это сделать?

Заранее спасибо

ответ

1

прокси построен из WSDL уже навязывает то, что схема была предоставлена, если, конечно, вызов принимает строковый параметр, где вы должны пройти XML. Это будет плохой дизайн, но если это то, что вам нужно сделать, вы можете. Просто используйте объект XmlDocument или XmlReader для проверки XML.

+0

Мой запрос позволяет мне отправлять объекты, созданные при создании прокси, поэтому я не создаю XML вручную. Это образец вызова, который я делаю - ContextType tx1 = loyal.GetPoints (tx, obj.Profile.AccountNumber, DateTime.Now, true, consumerName, outTypeType, out responseCode); Я не думаю, что воссоздание XML вручную было бы полезно для обеспечения того, чтобы я отправлял правильные элементы? Спасибо за вашу помощь – TheGeekYouNeed

+0

Хорошо. Таким образом, это означает, что вы отправляете уже проверенную схему, предоставленную сервером (т. Е. WSDL). Поэтому проблема заключается в том, что WSDL не удовлетворяет должным образом требование. О том, что вы могли бы сделать в этом случае, - это сделать дополнительную проверку кода, чтобы обеспечить дополнительные требования, которые вы обнаружите, которые не выражены в WSDL. –

+0

Ну, это не проверяется против схемы .... Я думаю, именно поэтому я спрашивал, как это сделать. (пожалуйста, не читайте это неправильно, это новая область C#, в которую я вступаю, и я действительно не знаю, все, что происходит, но нужно сделать все в очень короткий срок). Для instance, у меня есть объект Address, созданный WSDL. Одним из его свойств является состояние, которое должно быть только элементом данных из 2 символов. Я могу позвонить в веб-службу с плохими данными в поле состояния. Однако веб-служба возвращает мне ошибку «общей ошибки» в этом случае. – TheGeekYouNeed

Смежные вопросы