ASIHTTPRequest vs AFNetworking framework


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

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

2 30

2 ответа:

Обновление (Сентябрь 2013)

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

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

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

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

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

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

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

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

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

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

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