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

Objective-C: Лучший способ получить доступ к REST API на вашем iphone

боролся с этим в течение некоторого времени. Я пытаюсь получить доступ к REST api на своем iphone и наткнулся на структуру ASIHTTP, которая поможет мне. Поэтому я сделал что-то вроде

//call sites, so we can confirm username and password and site/sites
NSURL *url = [NSURL URLWithString: urlbase];
ASIHTTPRequest *request = [[[ASIHTTPRequest alloc] initWithURL:url] autorelease];
[request setUsername:@"doronkatz%40xx.com" ];
[request setPassword:@"xxx"];

Где urlbase - это URL-адрес сайта REST.

Теперь разработчик сказал мне, что может быть проблема или ошибка в этой структуре, а также правильность ее прохода заголовков. Есть ли другой способ тестирования или доступа к аутентификации в сетевом местоположении REST?

4b9b3361

Ответ 1

Я бы рекомендовал проверить RestKit: http://restkit.org/ Он предоставляет отличный API для доступа к веб-службам RESTful и представления удаленных ресурсов в качестве локальных объектов, включая сохранение их в Core Data. HTTP-аутентификация поддерживается из коробки.

Ответ 2

Я новичок в разработке iOS, и я сражался с некоторыми из крупных фреймворков, перечисленных на этой странице за последний месяц или около того. Это был кошмар. Я бы честно рекомендовал вам просто придерживаться основ и делать это самостоятельно, используя AFNetworking или Apple NSURLConnection.

Одна из перечисленных библиотек больше не поддерживается. В последнее время изменилось огромное изменение кода API, и теперь половина учебников, описывающих его использование, больше не работает. Другие широко раздуты.

Это проще, чем вы думаете. Некоторые ресурсы, которые помогли мне:

Примеры на домашней странице AFNetworking могут получить вам 80% от того, как это сделать.

UPDATE. Мантия Framework (открытая от Github Inc.) хорошо разработана и проста в использовании. Он обрабатывает сопоставление объектов: преобразование JSON NSDictionary в собственные классы классов Objective-C. Он эффективно обрабатывает случаи по умолчанию, и довольно легко свернуть свои собственные трансформаторы значений, например. от строки до NSURL или строки до вашего пользовательского enum.

Ответ 3

У меня есть несколько приложений, использующих фреймворк под названием Objective Resource, который предоставляет оболочку для доступа к удаленному REST на основе api. Он ориентирован прежде всего на приложения на основе Ruby on Rails, поэтому его синтаксический анализ XML/JSON может быть настроен для обработки некоторых значений по умолчанию Rails, но это стоит посмотреть. Он по умолчанию поддерживает HTTP-аутентификацию по умолчанию.

Ответ 4

Просто наткнулся на этот вопрос - вы можете найти LRResty довольно интересно, поскольку он использует NSOperation, блоки и т.д., см.: GitHub для источника (лицензия MIT). Я экспериментирую с этим сейчас - у него также есть пример приложения.

Ответ 5

Я использовал ASIHTTP в двух приложениях до сих пор и не имел проблем.

Похоже, вы используете HTTP Basic Auth с удаленным сайтом. Попробуйте нажать один и тот же URL REST из стандартного браузера и передать необходимые вам параметры. Он должен указать вам имя пользователя/пароль. Если это пройдет, то, по крайней мере, вы знаете, что серверная сторона настроена для обработки запросов. Если это не так, вам нужно поговорить с разработчиком.

Следующее, что нужно попробовать, - это установить сниффер сети на базе Mac и посмотреть, какие заголовки идут туда и обратно. Любой из HTTPScoop, Wireshark или Charles должен работать. Запустите сниффер в качестве сетевого прокси, затем запустите приложение в симуляторе и посмотрите, что происходит. Повторите попытку с помощью браузера. Как только вы увидите различия, вы можете использовать метод addRequestHeader на ASIHTTPRequest, чтобы добавить какие-либо определенные заголовки, ожидаемые сервером.