Существуют ли недостатки построения клиента .NET REST с использованием HttpWebRequest / Response - PullRequest
2 голосов
/ 06 октября 2009

Я хочу создать клиент .NET REST с использованием C #, и хотя я прочитал здесь много постов о распространенных методах, касающихся REST, я не смог что-то в этом убедиться. Я прочитал множество примеров клиентов REST, и большинство из них использовали только классы HttpWebRequest / Response для выполнения запросов и получения ответов. То, что я хочу спросить, каковы, по вашему мнению, недостатки, если бы я использовал REST-сервисы просто так. Раньше я не пользовался WCF, и у меня тоже нет об этом особых идей, поэтому я не могу самостоятельно провести сравнение.

Используя этот REST-клиент, я буду получать, обновлять, публиковать некоторые данные на устройстве. Итак, помимо простоты или сложности разработки, меня больше всего беспокоит производительность. Как вы думаете, HttpClient в WCF будет иметь существенное значение?

Спасибо заранее ..

Ответы [ 2 ]

3 голосов
/ 06 октября 2009

HttpClient в стартовом наборе WCF REST основан на HttpWebRequest и HttpWebResponse. Единственная зависимость, которую он имеет от WCF, связана с методами расширения HttpContent, которые находятся в Exllsions Dll.

Я бы рекомендовал использовать Microsoft.Http.HttpClient, поскольку он добавляет ОГРОМНОЕ количество функций для правильной работы HTTP. Все заголовки HTTP имеют оболочки. Класс HttpContent обеспечивает чтение и запись из потока запросов и ответов. Он буферизует ответ, так что вы можете прочитать ответ несколько раз. Он имеет поддержку, чтобы сделать выполнение асинхронных вызовов намного проще.

Если вы будете следовать шаблону использования методов расширения для преобразования в ваши родные форматы данных, вы обнаружите, что с библиотекой действительно легко работать.

0 голосов
/ 06 октября 2009

Не думаю, что будут существенные различия в производительности. Однако вы получите очень сложный код, просто используя HttpWebRequest и Response. Для небольших приложений это будет хорошо, но для более сложных вещей вы быстро окажетесь в не поддерживаемом коде. При таком примитивном подходе вам нужно будет самостоятельно реализовать философию REST. Напротив, в WCF это готово для вас, и вам нужно будет сосредоточиться только на своем заявлении.

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