WebRequest - самый простой, но устаревший способ интегрироваться с Api.
Но так ли он хорош ? Тем более WebRequest помечен, как deprecated и стоит мигрировать на HttpClient.
Стоит проверить пришло ли время срочно иммигрировать или можно еще подождать. Для этого мы отправим запрос к api через WebRequest и через HttpClient и с помощью Benchmark проверим, что же в итоге лучше.
В общем то, почему я вообще решил написать эту статью. У меня есть своя библиотека, где реализована вся логика Post Get и т д запросов. Все реализовано через WebRequest. Она завернута в nuget и долгие годы я туда не заглядывал и ничего не обновлял. Просто пользовался. И вот спустя долгие годы почти каждая строка помечена как obsolete. Значит пришло время обновиться.
В этой статье я не буду ревьюить свою же библиотеку, но вся логика скопирована оттуда. Для тестов возьмем api ChatGPD
Пишем метод для отправки Post запроса к api
строки 32, 33, 40, 43, 50, 51 крайне простой ревью - где-то появилась async реализация, где то добавить null check. В итоге получается так
Но есть одна вещь которую просто не исправить.
Сам WebRequest помечен как obsolete. Значит больше он не поддерживается, значит скоро его вообще удалят. Пора обновляться. Нам предлагают использовать HttpClient почему нет, напишем точно такой же метод, как метод выше, только без WebRequest.
Выглядит следующим образом. Помимо того, что больше нет ничего подчеркнутого, так же можно заметить то, что больше нет отдельной обработки для WebException, теперь обработка завязана на статус в ответе.
В принципе все. В следующей статье я напишу тесты для обоих методов. И после замерим оба метода с помощью бенчмарков.
Подписывайтесь на канал, чтобы не пропустить.