На this msdn page Я читаю:Mix синхронные и асинхронные методы HttpWebRequest
Ваше приложение не может смешивать синхронные и асинхронные методы для конкретного запроса. Если вы вызываете метод BeginGetRequestStream, вы должны использовать метод BeginGetResponse для извлечения ответа, .
И наоборот? Если я позвоню BeginGetResponse
, чтобы прочитать ответ асинхронно, я также должен использовать BeginGetRequestStream
, чтобы написать запрос?
Мои запросы небольшие (100-1000 символов), ответ может быть большим. This post от Jeffrey Richter, похоже, говорит, что в случае небольшой полезной нагрузки это можно сделать синхронно (и без установки свойства ContentLength
). Это верно?
Спасибо DiskJunky, я согласен с вами, но почему msdn настолько категоричен? –
В первую очередь я думаю, что это с точки зрения обслуживания. Легче, когда кто-то приходит и смотрит на ваш код, чтобы понять один подход, а не два. Простота и простота чтения всегда являются частью элегантного решения. Что касается MSDN, они должны рекомендовать подход «наилучшей практики» для содействия хорошему кодированию и дизайну – DiskJunky