Форум программистов, компьютерный форум, киберфорум
Objective-C
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
4 / 4 / 4
Регистрация: 11.11.2013
Сообщений: 51
1

Авторизация на сайте через приложение

31.03.2014, 11:28. Показов 2094. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Подскажите, пожалуйста, как реализовать вход на сайт через приложение. Пробовал через NSURLRequest, но, я так понимаю, это не то, что нужно.

PS нашел на просторах интернета этот код. Соединение успешно проходит, но ничего не отображается в Text Label.
PSS сайт new.mcko.ru :3

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
- (void)viewDidLoad
{
    [super viewDidLoad];
    
    // создаем запрос
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://new.mcko.ru"]
                                             cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:15.0];
    
    // создаём соединение и начинаем загрузку
    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];
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2014, 11:28
Ответы с готовыми решениями:

Авторизация на сайте (построенном на MVC 4) через приложение Android
Здравствуйте! История состоит в следующем...на фреймворке MVC 4 был создан сайт. Затем...

Авторизация на сайте методом POST через Android приложение
Необходимо проверить авторизован ли ты на сайте, дан URL ответа JSON. Пожалуйста, подкиньте хотя бы...

Авторизация на сайте через программу
вот есть форма на которой есть два поля 1)e-mail 2) пароль и кнопка вход. Мне нужно чтобы при...

Авторизация на сайте через инстаграм
помогите с авторизацией через инстаграм на vkway.com отблагодорю WMR! delphi7. как я понимаю надо...

7
44 / 44 / 3
Регистрация: 27.05.2013
Сообщений: 163
31.03.2014, 12:27 2
Хм этот код не производит не какую авторизацию. Исп для получения данных с удаленного сервера. Можете исп для скачаивание изображений, ну или для других целей.

))) авторизовался на сайте... логин:test , пароль:test ))))

Добавлено через 4 минуты
Я думаю вам нужно внимательно проанализировать сайт, и разобраться как происходит авторизация...
Я имею ввиду вот это место:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<form id="loginForm_n" action="" method="post">
  <div class="field_n" align="left">
    <label>Логин:</label>
    <a href="javascript:submitform_nx();" id="forgot_n" title="закрыть">[Х]</a>
    <div class="input_n">
      <input type="text" tabindex=1 name="login6965" value="tt" id="login6965"/>
    </div>
  </div>
  <div class="field_n" align="left">
    <a href="/index.php?page=forgot" id="forgot_n">Забыли пароль?</a>
    <label>Пароль:</label>
    <div class="input_n">
      <input type="password" class="pass" tabindex=2 name="passwd5659" value="" />
    </div>
  </div>
<a href="/index.php?page=invite" id="invite">Вам выдали код приглашения?</a>  <div class="submit_n"><div id=mess style="color:red;font-size:14px;">Связка логин/пароль не верна.</div><br>    <div class="scrils">
      <script type="text/javascript" src="https://seal.thawte.com/getthawteseal?host_name=new.mcko.ru&amp;size=M&amp;lang=en"></script>
    </div>
    <div class="inst">
      <a href="/new_mcko/pages/help/instruc/Инструкция_по_входу_в_МРКО.doc"><img src="/img/instruc01.png"></a>
    </div>
    <button type="submit" title="Войти">Войти</button>
  </div>
</form>
Как вы видите, тут даже есть еще один логин/пароль: login6965/passwd5659 )))))

Добавлено через 4 минуты
Вам нужно отправить данные исп post запрос. Из парамметров как минимум вы должны будете указать
login6965='ваш логин'
passwd5659='ну и пароль'
Запорос вот сюда https://new.mcko.ru/
Ну а дальше смотрим что вернет сервер...
0
4 / 4 / 4
Регистрация: 11.11.2013
Сообщений: 51
31.03.2014, 12:32  [ТС] 3
Цитата Сообщение от Pro2005 Посмотреть сообщение
Как вы видите, тут даже есть еще один логин/пароль: login6965/passwd5659
Это названия блоков)

Цитата Сообщение от Pro2005 Посмотреть сообщение
Я думаю вам нужно внимательно проанализировать сайт, и разобраться как происходит авторизация...
Уже неоднократно смотрел этот код. Здесь лишь форма ввода, разве нет?
0
44 / 44 / 3
Регистрация: 27.05.2013
Сообщений: 163
31.03.2014, 12:32 4
Это названия блоков)... угу введите их в поля логин/пароль )))
0
4 / 4 / 4
Регистрация: 11.11.2013
Сообщений: 51
31.03.2014, 12:36  [ТС] 5
Цитата Сообщение от Pro2005 Посмотреть сообщение
введите их в поля логин/пароль
Связка логин/пароль не верна.
0
44 / 44 / 3
Регистрация: 27.05.2013
Сообщений: 163
31.03.2014, 12:40 6
Да уже не пускает, ну что ж... )
0
4 / 4 / 4
Регистрация: 11.11.2013
Сообщений: 51
31.03.2014, 12:42  [ТС] 7
Pro2005, таки при помощи какой функции сделать авторизацию?)
0
44 / 44 / 3
Регистрация: 27.05.2013
Сообщений: 163
31.03.2014, 14:28 8
Как-то вот так:
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
#define kURLString                  @"https://new.mcko.ru/"
 
@implementation ViewController
 
- (void)viewDidLoad {
    [super viewDidLoad];
    AFSecurityPolicy *policy = [[AFSecurityPolicy alloc] init];
    [policy setAllowInvalidCertificates:YES];
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager setSecurityPolicy:policy];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    [manager GET:kURLString parameters:[NSDictionary dictionary] success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSString *htmlData = [[NSString alloc] initWithData:responseObject encoding:NSWindowsCP1251StringEncoding];
        [self loginWithName:@"test" password:@"test" prevHTMLData:htmlData withBlock:^(NSString *resultString) {
            NSLog(@"result:%@", resultString);
        }];
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"error:%@", [error localizedDescription]);
    }];
}
 
- (void)loginWithName:(NSString *)login password:(NSString *)password prevHTMLData:(NSString *)htmlData withBlock:(void(^)(NSString *resultString))block {
    NSString *loginName = [self searchExpressionWithPattern:@"login\\d{4}" inString:htmlData];
    NSString *passwsName = [self searchExpressionWithPattern:@"passwd\\d{4}" inString:htmlData];
    if (loginName == nil || password == nil) {
        block(nil);
        return;
    }
    AFSecurityPolicy *policy = [[AFSecurityPolicy alloc] init];
    [policy setAllowInvalidCertificates:YES];
    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    [manager setSecurityPolicy:policy];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    NSDictionary *parameters = @{loginName:login, passwsName:password};
    [manager POST:kURLString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
        NSString *htmlData = [[NSString alloc] initWithData:responseObject encoding:NSWindowsCP1251StringEncoding];
        block(htmlData);
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"error:%@", [error localizedDescription]);
        block(nil);
    }];
}
 
- (NSString *)searchExpressionWithPattern:(NSString *)pattern inString:(NSString *)dataSource {
    NSError *error = nil;
    NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:pattern options:NSRegularExpressionCaseInsensitive error:&error];
    NSTextCheckingResult *checkingResult = [regex firstMatchInString:dataSource options:NSMatchingReportProgress range:NSMakeRange(0, dataSource.length)];
    NSString *result = [dataSource substringWithRange:checkingResult.range];
    return result;
}
 
@end
*** исп AFNetworking !!!
1
31.03.2014, 14:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2014, 14:28
Помогаю со студенческими работами здесь

Авторизация на сайте через Python
Здравствуйте! Нужно написать небольшой скрипт на сайт Nike RU. Он должен создавать много окон...

Авторизация на сайте через браузер
Здравствуйте. Нужно открыть страничку сайта, при этом предварительно авторизироваться на нем. Код...

Авторизация на сайте через Chrome
Привет. Цель программы Программа открывает Google Chrome, идет на сайт, вводит логин и пароль на...

Авторизация через парсер на сайте
Авторизация Через парсер на сайте это возможно или я ерундой занимаюсь ??? package...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru