ASIHTTPRequest против AFNetworking vs NSUrlRequest
В прошлом я использовал ASIHTTPRequest
, но теперь есть NSURLRequest
. Должны ли мы использовать NSURLRequest
сейчас? Есть ли недостатки?
Для людей, читающих это сейчас: я закончил использование AFNetworking
, как указано в ответах
https://github.com/AFNetworking/AFNetworking
Спасибо,
Ответы
Ответ 1
NSURLConnection
и NSURLRequest
- это предоставленные классы Cocoa для управления соединениями. В iOS 7 Apple добавила NSURLSession
.
Но я думаю, вы найдете AFNetworking
в качестве рамки, которая еще больше упростит сетевые запросы (особенно сложные HTTP-запросы). Если по какой-либо причине вы не хотите использовать сторонние фреймворки, вы можете напрямую использовать NSURLConnection
и/или NSURLSession
. Это просто требует немного больше кодирования.
Если вы ищете хорошую альтернативу ASIHTTPRequest
, AFNetworking
- отличный кандидат.
Информацию о NSURLConnection
и NSURLSession
см. в Руководстве по программированию URL-адреса URL.
Ответ 2
NSURLRequest
существует с iOS2.0 (см. doc), поэтому он не совсем новый. ASIHTTPRequest
было прекращено, последнее обновление было 15 мая 2011 года, поэтому вы не должны его использовать. AFNetworking - восхитительная сетевая библиотека для iOS и Mac OS X, описанная ими , и действительно делает вашу жизнь проще, в моем случае это первая структура, которую я включаю в моей сети нужны проекты.
Какой из них вы должны использовать? Я думаю, это зависит от ваших требований, а NSURLRequest
и NSURLConnection
вы можете делать все, фактически AFNetworking мы построили на вершине NSURLConnection. Но как я вам рассказываю раньше, AFNetworking имеет мое преимущество.
EDIT post iOS7
Если вы ориентируетесь на iOS7, вы должны взглянуть на NSURLSession, проверьте официальную документацию , и этот tutorial.
EDIT для Swift
Взгляните на проект Alamofire для реализации, выполненной в Swift, он также создан mattt (основным автором AFNetworking).
Ответ 3
Asihttprequest - это устаревшая библиотека, которая сейчас не поддерживается для разработки. Не используйте его.
NSURLRequest используется по умолчанию для класса iOS (cocoa). Я рекомендую его для очень небольшого использования, потому что вам нужно будет написать много кода для обработки ответов на соединение.
Кроме того, они строят все http-библиотеки.
Теперь AFNetwoking является стандартным для http, imho. Он использует блоки для обратных вызовов, поддерживает разные типы данных json, xml и т.д., Он хорошо разработан и может быть легко подклассифицирован. это лучше всего.
Ответ 4
Родной (NSURLSession) против AFNetworking или любой другой библиотеки.
Я бы порекомендовал вам использовать NSURLSession, потому что он дает вам много настроек в конце приложения. Недавно я работал над проектом, мне нужно использовать данные о нескольких частях, где в приложении. Я должен предоставить тело запроса бэкэнду, я использовал регистратор AfNetworking для печати своего тела, но это не помогло мне. поэтому я перешел в родную библиотеку cocoa и получил свое решение.
поэтому я предлагаю вам использовать родную сеть iOS, потому что она дает вам много настроек, но если вам понадобится меньше кода, вы можете использовать любую стороннюю библиотеку.