2012-07-31 1 views
0

Мы вызываем wcf svcs (а не наш), и мы используем для поиска базу данных продукта.Запрос служб WCF с OData Парамами в POST вместо GET

Пример: http://foo.com/SearchProducts.svc $ пропустить = 0 $ взять = 10 $ includeTotalCount = истинный

Мы передаем параметры OData на странице о результатах SearchProducts SVC. Svc был изменен на POST, потому что один из наших фильтров «skus» иногда огромен (hundres of skus), который заставляет GET ломаться, потому что uri слишком велик. Самое простое решение, которое мы думали, это просто изменить вызов на сообщение, но теперь параметры Odata, похоже, не используются.

Нужно ли отправлять эти параметры другим способом при выполнении POST?

ответ

1

Соответствующий сервис OData не поддерживает POST-глагол для запросов (если вы не используете туннелирование POST, но тогда вы все равно будете нажимать ограничение по URL-адресу). Поэтому мне интересно, как это работает для вас вообще. Предельный размер

URL-адрес может быть преодолена с помощью нескольких подходов:

  • Упростите выражение запроса. Очевидно, что это может занять до сих пор, но это, как правило, лучшее решение, так как это, скорее всего, ускорит выполнение запроса.
  • Используйте пакет вместо. Вы можете отправить запрос GET внутри пакета. Длина URL-адреса в этом случае не является проблемой, так как URL-адрес запроса отправляется в полезной нагрузке пакета.
  • Определите операцию обслуживания для сложного запроса, который вы используете (но поскольку у вас нет собственной службы, это, вероятно, не очень хорошее решение для вас).