Когда дело доходит до размещения данных на веб-сайте, System.Net.HttpWebRequest (специфичная для HTTP реализация WebRequest) является вполне приличным решением. Он поддерживает SSL, асинхронные запросы и кучу других вкусностей и хорошо документирован в MSDN.
Полезная нагрузка может быть чем угодно: данными в формате JSON или чем-то еще - при условии, что для свойства ContentType установлено то, что сервер ожидает и понимает (скорее всего, application / json, text / json или text / x-json), все будет хорошо.
Одна потенциальная проблема при использовании HttpWebRequest из системной службы: поскольку он использует прокси-сервер IE и информацию о полномочиях, поведение по умолчанию может быть немного странным при работе в качестве пользователя LOCALSYSTEM (или, по сути, любой учетной записи, которая не выполняет интерактивный вход на регулярной основе). Если для свойств Proxy и Authentication установлено значение Nothing
(или, как вы, C #, предпочитаете называть, null
, я полагаю), этого следует избегать.