извлечение данных из URL с паролем

#ios #ios5

#iOS #ios5

Вопрос:

Я хочу получить данные с этого URL:http://webservices.ns.nl/ns-api-stations. Для этого URL требуется логин. Как поместить этот логин в мой код? Этот код я использую сейчас.

-(недействительный)fetchStationData { //Метод для извлечения данных

 //First lets check wheater there is an internet connection and if the host is reachable
if(internetActive) {

    //Internet is active

    //Init the parser
    parser = [[RSSParser alloc] init];

    //Set he parser context
    parser.context = context;

    //The array to het the data from 
    NSURL *url = [NSURL URLWithString:@"http://webservices.ns.nl/ns-api-stations"];

    //The XML elements to fetch
    NSArray *elements = [[NSArray alloc] initWithObjects:@"naam",nil];

    //The actual fetchin
    [parser fetchStationItemsForUrl:url forElements:elements];

    //Save the context ?
    [context save:nil];

    //Clean up
    [elements release]; 

}
  

Ответ №1:

Серверу, к которому вы пытаетесь получить доступ и получить некоторые данные, требуется какая-то аутентификация, чтобы разрешить это .. Поэтому, прежде чем пытаться выполнить запрос get, вам необходимо выполнить аутентификацию. Итак, вам нужно знать, какой метод аутентификации (например, Digest Auth) они используют, а также вам нужны имя пользователя и пароль..

Также вам необходимо использовать библиотеку HttpRequest. Я предлагаю вам использовать ASIHTTPRequest, это действительно просто.. Вы также можете выполнить аутентификацию с помощью библиотеки asihttprequest, прежде чем отправлять запрос с сервера.

Комментарии:

1. Отлично работает после добавления фреймворков: CFNetwork, SystemConfiguration, MobileCoreServices и libz. Спасибо.

Ответ №2:

Веб-сайт, на который вы ссылаетесь, защищен базовой аутентификацией. Одним из более простых способов передачи информации аутентификации было бы добавление учетных данных к URL:

 http://user:password@webservices.ns.nl/ns-api-stations
  

Обратите внимание, что веб-сайт не защищен SSL, поэтому вся информация для аутентификации будет передана в открытом виде.