Подтвердить что ты не робот

ASIHTTPRequest vs AFNetworking framework

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

Хотелось бы узнать, какой из них будет лучше? ASIHTTPRequest по-прежнему работает, но не поддерживается. Однако мало источников говорят, что структура AFNetworking создает множество осложнений.

4b9b3361

Ответ 1

Обновление (сентябрь 2013 г.)

Прошло почти два года с тех пор, как я изначально написал этот ответ, и многое изменилось. AFNetworking собирается перейти в версию 2.0 и имеет процветающее сообщество разработчиков, тогда как ASIHTTPRequest в значительной степени мертв. Кроме того, AFNetworking имеет множество полезных вспомогательных библиотек и классов, доступных для обработки таких вещей, как OAuth, Amazon S3 и т.п. Он настолько популярен, что на нем доступно несколько книг.

Учитывая это, нет никакой причины продолжать использовать ASIHTTPRequest. Мой первоначальный ответ ниже, поэтому, если вы все еще заинтересованы, читайте дальше - просто имейте в виду, что теперь я рекомендую без сомнения использовать ASIHTTPRequest и переходить с чем-то более современным (а именно AFNetworking, но другие варианты имеется).

Оригинальный ответ (декабрь 2011)

Сколько у вас времени? Здесь мои мысли, хотя, как субъективный вопрос, я не думаю, что есть правильный или неправильный ответ.

Я возглавляю группу разработчиков, которая работает над коммерческими приложениями для крупных клиентов, а некоторые из моих коллег всегда ищут новые библиотеки, которые упрощают работу. В настоящее время я предполагаю, что подавляющее большинство наших сетей использует ASIHTTP. Мы посмотрели AFNetworking около шести месяцев назад и решили, что в то время мы будем придерживаться того, что знаем. ASI существует некоторое время, и для него доступно гораздо больше документации и полезных советов. Это прочная кодовая база, и она была достаточно длинной, чтобы получить большую тягу и уважение.

Это говорит (и, надеюсь, люди, которые не согласны со всем, что я сказал выше, будут читать!), я думаю, что если вы начинаете заново, то настало время перейти к чему-то еще. Даже разработчик ASI думает так. Учитывая все изменения, которые произошли с iOS 5, я считаю, что подходящим вариантом является современная активно поддерживаемая инфраструктура, такая как AFNetworking (и есть другие варианты, такие как RestKit).

Теперь вы можете сказать, что у некоторых людей есть проблемы с использованием AFNetworking в их приложении. Но в равной степени, быстрый google показывает много людей, у которых были проблемы с ASI (действительные или нет)! Я думаю, что с какой бы рамкой вы ни были, кто-то где-то будет иметь проблемы с ней, либо с помощью чего-то неподходящего с каркасом или их собственных ограничений.

Итак, имея в виду все это, я думаю, что буду погружаться в AFNetworking и посмотреть, как вы справляетесь! Одной из моих резолюций нового года будет переход на новую сетевую библиотеку, и я думаю, что это, вероятно, будет AFNetworking.

Из комментария автора:

Небольшое обновление: мне действительно понравилось использовать AFNetworking, и во многом это значительно лучше (возможно, не правильное слово: "уточнено", может быть), чем ASI. Тем не менее, вы не должны вдаваться в него, ожидая замены типа "like like like", и есть некоторые вещи, которые вы можете рассмотреть, другие варианты для (Amazon S3, который ASI поддерживается из коробки, например). Но я вообще очень доволен и нахожу это ясной, хорошо документированной библиотекой. Поэтому, если вы хотите перейти от ASI к чему-то еще, вы действительно не ошибетесь в AFNetworking...

Ответ 2

https://github.com/BoydYang/BYRequest BYRequest основан на MKNetowrkKit, но он работает как ASIHttpRequest, поэтому вы можете легко перенести свой проект с ASIHttpRequest на BYRequest, а также наслаждаться ARC.