Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.80
MaZaHaKa91
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 8
#1

Авторизация на сервере и получение данных - Objective-C

13.11.2013, 19:05. Просмотров 1960. Ответов 4
Метки нет (Все метки)

Всем привет)Прошу в меня камнями не кидать,я новичок,читаю гайды ,книги,но одному поднимать весь обьем знаний нереально для меня(
Проблема состоит в чем.Создаю программу которая будет клиентом для веб сайта(www.dnevnik.ru).

1)Каким образом я должен в Xcode отправить запрос на сервер,чтобы можно в клиенте было ввести данные(С TextBox-ов) и в дальнейшем залогиниться,начать работу с сервером(создать сессию).Знаю что нужно послать POST запрос,посылал его,находил примеры в интернете сервер внятно вообще не отвечал.И я не знал как в таком случае в запросе представить данные для процесса авторизации.
2)Как потом создать парсер для того чтобы вытаскивать данные с страницы.

Прошу помощи,потому что сам отчаился в поисках.Програмирую кстати под iOS.Буду рад ответу на любой из этих вопросов!Заранее спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.11.2013, 19:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Авторизация на сервере и получение данных (Objective-C):

Авторизация на сервере и получение содержимого страницы в TextBox - Visual Basic .NET
Подскажите как осуществить авторизацию на сервере и получить содержимое в TextBox1. Пробовал такой вариант: Dim http = (New...

.NET 4.x Авторизация на сервере и получение HTML-кода страницы - Visual Basic .NET
Добрый день! Требуется получить исходный код страницы для последующего парсинга с нее данных, однако для доступа к этой странице...

Получение данных с txt фаила на сервере - C++
Добрый день. Пишу консольное приложение на С++, . Допустим есть http:..сайт/test.txt . Нужно с файла test.txt который находится на сайте,...

Авторизация на сайте и получение данных из личного кабинета на сайте - C#
В общем, проштудировав три справочника за неделю и полазав в интернете, кроме как опухнувшего мозга ничего не получил.. В общем, есть...

Авторизация на сервере - Программирование Android
привет всем. никак не могу авторизироваться на сервере уже второй день. перепробовал кучу вариантов. вот код метода: public String...

Авторизация на сервере - Программирование Android
Клиент-серверное приложение. Решили сделать на сервере авторизацию по логину-паролю. Мне не понятен сам механизм как это работает. Каков...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
14.11.2013, 06:40 #2
Цитата Сообщение от MaZaHaKa91 Посмотреть сообщение
1)Каким образом я должен в Xcode отправить запрос на сервер,чтобы можно в клиенте было ввести данные(С TextBox-ов) и в дальнейшем залогиниться,начать работу с сервером(создать сессию).Знаю что нужно послать POST запрос,посылал его,находил примеры в интернете сервер внятно вообще не отвечал.И я не знал как в таком случае в запросе представить данные для процесса авторизации.
Если знаете, что нужно делать и что-то пытались сделать, то покажите это и объясните, где конкретно возникла проблема. А на такие общие вопросы получите такие же общие ответы: "надо отправить http запрос и распарсить ответ"

Цитата Сообщение от MaZaHaKa91 Посмотреть сообщение
2)Как потом создать парсер для того чтобы вытаскивать данные с страницы.
Такими извращениями не приходилось заниматься, но подозреваю подойдет любой xml парсер, который умеет искать по xpath
0
Монфрид
1196 / 1006 / 154
Регистрация: 07.03.2012
Сообщений: 3,243
Завершенные тесты: 2
15.11.2013, 12:22 #3
плохая идея, имхо. Допустим, завтра сайт поменяет способ входа на сайт, и вам программу придётся переделывать. По-хорошему, они должны создать api, web-службу со всеми необходимыми методами для работы.
0
MaZaHaKa91
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 8
15.11.2013, 15:09  [ТС] #4
Цитата Сообщение от glvrzzz Посмотреть сообщение
Если знаете, что нужно делать и что-то пытались сделать, то покажите это и объясните, где конкретно возникла проблема. А на такие общие вопросы получите такие же общие ответы: "надо отправить http запрос и распарсить ответ"
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
//
//  DNVViewController.m
//  Дневник
//
//  Created by Артур ### on 22.10.13.
//  Copyright (c) 2013 Артур ###. All rights reserved.
//
 
#import "DNVViewController.h"
 
@interface DNVViewController ()
 
@end
 
@implementation DNVViewController
 
 
 
- (void)viewDidLoad
{
    [super viewDidLoad];
        
        // создаем запрос
        NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://login.dnevnik.ru"]
                                                               cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                           timeoutInterval:15.0];
        request.HTTPMethod = @"POST";
        // указываем параметры POST запроса
        NSString* params = @"param1=2&param2=2";
        request.HTTPBody = [params dataUsingEncoding:NSUTF8StringEncoding];
        
        
        // создаём соединение и начинаем загрузку
        NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
        
        if (connection) {
            // соединение началось
            label.text = @"Connecting...";
            // создаем NSMutableData, чтобы сохранить полученные данные
            receivedData = [[NSMutableData data] retain];
        } else {
            // при попытке соединиться произошла ошибка
            label.text = @"Connection error!";
        }
        
    }
    
    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
    {
        // получен ответ от сервера
        [receivedData setLength:0];
    }
    
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
    {
        // добавляем новые данные к receivedData
        [receivedData appendData:data];
    }
    
    - (void)connection:(NSURLConnection *)connection
didFailWithError:(NSError *)error {
    // освобождаем соединение и полученные данные
    [connection release];
    [receivedData release];
    
    // выводим сообщение об ошибке
    NSString *errorString = [[NSString alloc] initWithFormat:@"Connection failed! Error - %@ %@ %@",
                             [error localizedDescription],
                             [error description],
                             [[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]];
    label.text = errorString;
    
    [errorString release];
}
    
    
    - (void)connectionDidFinishLoading:(NSURLConnection *)connection {
        // данные получены
        // здесь можно произвести операции с данными
        
        // можно узнать размер загруженных данных
        //NSString *dataString = [[NSString alloc] initWithFormat:@"Received %d bytes of data",[receivedData length]];
        
        // если ожидаемые полученные данные - это строка, то можно вывести её
        NSString *dataString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
        
        label.text = dataString;
        
        // освобождаем соединение и полученные данные
        [connection release];
        [receivedData release];
        [dataString release];
    }
    
    
 
    UIImage *backgroundImage = [UIImage imageNamed:@"BackgroundPattern.png"];
    UIColor *backgroundColor = [UIColor colorWithPatternImage:backgroundImage];
    self.view.backgroundColor = backgroundColor;
    
    
    UIImage *buttonNormalImage = [UIImage imageNamed:@"RedButtonDefault"];
    UIImage *buttonNormalStretchableImage = [buttonNormalImage stretchableImageWithLeftCapWidth:14 topCapHeight:0];
    
    UIImage *buttonHighlightedImage = [UIImage imageNamed:@"RedButtonHighlighted"];
    UIImage *buttonHighlightedStretchableImage = [buttonHighlightedImage stretchableImageWithLeftCapWidth:14 topCapHeight:0];
    [self.moarButton setBackgroundImage:buttonNormalStretchableImage forState:UIControlStateNormal];
    [self.moarButton setBackgroundImage:buttonHighlightedStretchableImage forState:UIControlStateHighlighted];
    UIImage *boxImage = [UIImage imageNamed:@"Extrude"];
    UIImage *boxResizableImage = [boxImage resizableImageWithCapInsets:UIEdgeInsetsMake(15, 15, 15, 15)];
    self.boxImageView.image = boxResizableImage;


Проблема в том что я не могу разобраться для начала какому сайту именно нужно "показать" логин с паролем(у меня прописан www.login.dnevnik.ru,но как точно определить какому сайту сплавлять все?),и в какой форме мне этот логин с паролем отправить сайту(необходимо из строки NSString которая находится в TextField, переделать данные в вид понятные серверу и засунуть в запрос,но вот как?)

Добавлено через 5 минут
Монфрид Понимаю,но у них нет API(что осложняет мне задачу,и немного удивляет).Но мне на данный момент просто нужно создать работающий хотя бы прототип
0
MaZaHaKa91
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 8
16.11.2013, 20:31  [ТС] #5
кто нибудь может помочь? Монфрид,glvrzzz?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2013, 20:31
Привет! Вот еще темы с ответами:

Авторизация на сервере - C#
Здравствуйте. Возникла проблема с авторизацией на сервере. И так проблема. Есть сетевой адресс: \\10.87.10.10\\MyServer\\FolderWithFiles...

Авторизация на сервере - Программирование Android
Гуру, посоветуйте... Есть МОЙ сайт. На нем МОЯ система авторизации написанная с нуля (куки+сессии). Через браузеры работает. ...

авторизация на удалённом сервере - PHP
Я вот тут уже много нашел по своей проблеме, однако не всё... <?php @ $file_http=fopen('http://www.docsearch.ru/index__php.html',...

Авторизация клиента на сервере - C# WCF
Клиент /// <summary> /// Создание экземпляра клиента /// </summary> /// <returns>Экземпляр...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.11.2013, 20:31
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru