Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.92/12: Рейтинг темы: голосов - 12, средняя оценка - 4.92
MaZaHaKa91
0 / 0 / 0
Регистрация: 13.11.2013
Сообщений: 8
1

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

13.11.2013, 19:05. Просмотров 2142. Ответов 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
Ответы с готовыми решениями:

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

Авторизация на сервере и получение содержимого страницы в TextBox
Подскажите как осуществить авторизацию на сервере и получить содержимое в...

Получение данных с txt фаила на сервере
Добрый день. Пишу консольное приложение на С++, . Допустим есть...

Авторизация на сайте и получение данных по запросу
Доброго времени суток. Ребят подскажите. В общем делаю авторизацию на сайте,...

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

4
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
Монфрид
1211 / 1021 / 293
Регистрация: 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
16.11.2013, 20:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2013, 20:31

Авторизация на сервере
Гуру, посоветуйте... Есть МОЙ сайт. На нем МОЯ система авторизации...

Авторизация на сервере
привет всем. никак не могу авторизироваться на сервере уже второй день....

Авторизация на сервере
Клиент-серверное приложение. Решили сделать на сервере авторизацию по...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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