ASIHTTPRequest vs AFNetworking Framework - PullRequest
       30

ASIHTTPRequest vs AFNetworking Framework

30 голосов
/ 26 декабря 2011

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

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

Ответы [ 2 ]

52 голосов
/ 26 декабря 2011

Обновление (сентябрь 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. Тем не менее, вы не должны вдаваться в подробности, ожидая замены типа «нравится», и есть некоторые вещи, для которых вы можете рассмотреть другие варианты (Amazon S3, который ASI поддерживает из коробки, например). Но я, как правило, очень рад, и нахожу это понятной, хорошо документированной библиотекой. Так что если вы хотите перейти от ASI к чему-то другому, вы действительно не ошибетесь с AFNetworking ...

1 голос
/ 06 декабря 2012

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

...