Есть ли способ сделать веб-запрос в C #, который не вызывает исключение для кодов состояния 4xx и 5xx? - PullRequest
3 голосов
/ 01 марта 2011

Я использую CouchDB в качестве источника данных для веб-службы C #.

Будучи RESTful, CouchDB возвращает код состояния 404, когда запрашивается документ, который не существует. При этом стандартный веб-запрос .NET хочет вызвать исключение, но (по крайней мере, мне) сообщение о том, что источник данных возвратил «нет результатов» через исключение, является совершенно ужасным; и это вонючий, я действительно не хочу бродить в моем коде ...

Есть ли какая-либо замена для WebRequest, которую я могу использовать, которая позволит мне обрабатывать коды состояния по своему усмотрению?

РЕДАКТИРОВАТЬ: Просто чтобы уточнить, из-за ответов, которые я получил до сих пор: я не хочу скрывать исключение, которое выдает WebRequest. Я ищу альтернативу стандартному веб-запросу, который не генерирует исключения на основе кодов состояния, поскольку интерпретация .NET того, что представляет собой ошибку, не соответствует принципам REST.

РЕДАКТИРОВАТЬ # 2 Мне действительно нужен 3.5 совместимый способ сделать это; извините за то, что не уточнил это с самого начала.

Ответы [ 3 ]

2 голосов
/ 01 марта 2011

Библиотека HttpClient не генерирует исключения после запроса.См. this для примеров использования.

0 голосов
/ 01 марта 2011

Я не использовал их, но есть несколько выделенных клиентских библиотек C # CouchDB.

Существует список CouchOne драйверов CouchDB .

Также есть вики-список CouchDB для клиентов C # .

Мое личное предпочтение - придерживаться как можно ближе к слою HTTP. HTTTP очень простой , а CouchDB API - очень простой . Для доступа к нему не требуется промежуточное программное обеспечение. (К сожалению, у вашего WebRequest класса, по-видимому, есть эта ошибка.)

0 голосов
/ 01 марта 2011

Я не уверен, в чем твоя проблема. Если вы не хотите получать 404 при запросе несуществующих документов, я думаю, вам просто нужно добавить карты приложения с подстановочными знаками в настройках IIS и снять флажок «Проверить, что файл существует».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...