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

Objective-C

Войти
Регистрация
Восстановить пароль
 
iSerg
2 / 2 / 1
Регистрация: 20.08.2012
Сообщений: 29
#1

NSURLSession: html-страница вместо json - Objective-C

19.11.2014, 23:10. Просмотров 1154. Ответов 5
Метки нет (Все метки)

Доброго вечера. Пытаюсь пройти регистрацию на сайте. Создаю запрос, метод POST. Но вместо ожидаемого json`а, мне возвращается html-страница.

Также проверил полный созданный URL на Rest Client`е, все работает, в приложение приходит json.

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
NSString *paramsRegistrationURL = [NSString stringWithFormat:@"/register?email=&name=%@&surname=%@&phone=%@",
                                                                                                      params[0],
                                                                                                      params[1],
                                                                                                      params[2]];
        
        NSURLSessionConfiguration *currentSessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
        NSURLSession *currentSession = [NSURLSession sessionWithConfiguration:currentSessionConfig];
        NSURL *mainRegistrationURL = [NSURL URLWithString:HTTPMainURL];
        NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:mainRegistrationURL];
        
        [urlRequest setHTTPMethod:@"POST"];
        [urlRequest setHTTPBody:[paramsRegistrationURL dataUsingEncoding:NSUTF8StringEncoding]];
        [urlRequest addValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
        
        NSLog(@"Method:%@ URL:%@%@", urlRequest.HTTPMethod, urlRequest.URL.absoluteString, [[NSString alloc] initWithData:[urlRequest HTTPBody] encoding:NSUTF8StringEncoding]);
        
        NSURLSessionDataTask *currentSessionDataTask = [currentSession dataTaskWithURL:urlRequest.URL.absoluteURL
                                                        completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
                                                            
//                                                            NSString *strdata = [*[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                                                            NSString *strdata = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
                                                            NSLog(@"Response: %@ %@\n", strdata, error);
                                                            
                                                            if (!error) {
                                                                
                                                                NSHTTPURLResponse *httpResp = (NSHTTPURLResponse*) response;
                                                                
                                                                if (httpResp.statusCode == 200) {
                                                                    
                                                                    NSDictionary *jsonArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&error];
                                                                    NSLog(@"result json: %@ Error: %@", jsonArray, error);
                                                                }
                                                            }
                                                        }];
НО, если я просто пропишу без всяких заморочек и конфигов:

Objective-C
1
2
3
4
5
6
7
NSURLSessionDataTask *currentSessionDataTask = [currentSession dataTaskWithURL:[NSURL URLWithString:@"http://somecustomsite.xx/api/register?email=&name=serg&surname=petr&phone="] completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
            
            NSString *strdata = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
            NSLog(@"Response: %@ %@\n", strdata, error);
 
        }];
        [currentSessionDataTask resume];
то приходит json, но такой рукож..пый способ не подходит, но и не могу понять почему не работает правильно верхний код.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2014, 23:10
Здравствуйте! Я подобрал для вас темы с ответами на вопрос NSURLSession: html-страница вместо json (Objective-C):

NSURLSession, вытаскиваем данные - Objective-C
Все попытки добавления данных в виде addObject - безуспешны, массив остается пустой, хотя данные которые пытаемся туда добавить -...

Как отослать HTML с помощю Perl-a, так чтобы когда откроется почта, там была страница HTML-a? - Perl
Подскажите как отослать HTML с помощю Perl-a, так чтобы когда откроется почта, там была страница HTML-a.

Страница с json и русские символы - PHP
вот есть такая страница http://steamcommunity.com/profiles/76561198079297586/inventory/json/730/2/ там как я понял строка Json а русские...

Пустая страница вместо сайта - Удаление вирусов
Захожу на сайт, он нормально грузится и спустя 1-2 секунды начинает обновляться. После чего вся страница пропадает и остается только белый...

Вместо ошибок белая страница - PHP
У меня вместо любых ошибок выводится белая страница. Как я понял в PHP выключена директива display_errors (в php.ini). ВОПРОС: Как...

Вместо сайта пустая страница - SEO
Друзья! У меня – уже давно сайт, посвященный Новому году, созданный несколько лет назад в Narod.ru Сейчас, как и прежде, он находится...

5
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
20.11.2014, 00:33 #2
С URLSession не работал, пользуюсь обычно библиотекой AFNetworking. Вверху, где задаешь параметры запроса, там точно надо в формате NSString писать? Обычно параметры задаются как dictionary как набор ключ-значение.
0
iSerg
2 / 2 / 1
Регистрация: 20.08.2012
Сообщений: 29
20.11.2014, 00:56  [ТС] #3
Цитата Сообщение от vitali36 Посмотреть сообщение
С URLSession не работал, пользуюсь обычно библиотекой AFNetworking. Вверху, где задаешь параметры запроса, там точно надо в формате NSString писать? Обычно параметры задаются как dictionary как набор ключ-значение.
Везде в примерах, которые я видел, без словарей.
0
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
20.11.2014, 01:04 #4
Ради интереса посмотрел, как работать с URLSesson. Слишком много конфигураций. Но посмотри тут: http://stackoverflow.com/questions/8...surlconnection у тебя этих строк нет
Objective-C
1
2
3
[request setValue:[NSString stringWithFormat:@"%i",postData.length] forHTTPHeaderField:@"Content-Length"];
[request setHTTPShouldHandleCookies:YES];
[request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
Попробуй добавь.
0
iSerg
2 / 2 / 1
Регистрация: 20.08.2012
Сообщений: 29
20.11.2014, 01:30  [ТС] #5
Цитата Сообщение от vitali36 Посмотреть сообщение
Попробуй добавь.
К сожалению ничего не дало. Тупо возвращает html-страницу. Я даже специально ссылку кинул в браузер, и он показал мне json. Код не хочет =) Уже больше половины дня бъюсь над этим и никак не решу. Везде у всех работает.
0
vitali36
7 / 7 / 2
Регистрация: 09.02.2014
Сообщений: 91
20.11.2014, 01:54 #6
Советую разобраться с afnetworking. Там гораздо все проще)
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2014, 01:54
Привет! Вот еще темы с ответами:

Вместо диалогового окна обновляется страница - C# MVC
Всем здравствуйте! У меня такой вопрос: я создал частичное представление, создал модель и контроллер, и передаю данные в частичное...

Веб страница вместо фонового изображения в браузере - Delphi
я пишу браузер на delphi и хотелось бы сделать такую вещь: чтобы на браузера фоне была картинка, а когда адрес в строку вводишь вместо...

Иногда выскакивает белая страница вместо сайта - WordPress
Добрый вечер. Все было хорошо, но... Недавно появилась проблема, причем очень странная. Не знаю с чем связанная. Пользовался я Яндекс...

Пустая страница вместо личного кабинета пользователя - PHP ООП
Доброго времени суток, господа! Озадачился созданием личного кабинета на основе представленного кода с сайта mzcoding.com. Все...


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

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

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