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

Swift

Войти
Регистрация
Восстановить пароль
 
 
Spelcrawler
523 / 493 / 111
Регистрация: 12.03.2014
Сообщений: 1,646
Завершенные тесты: 1
#1

Http request - Swift

26.11.2015, 13:08. Просмотров 834. Ответов 25
Метки нет (Все метки)

Здравствуйте. Как получить ответ от сервера по url, без всяких асинхронных конструкций? Да, я знаю что нужно все подобные операции делать асинхронно, но мне нужно послать 10 запросов по очереди и если для каждого писать код в блоках получается очень длинная и не читаемая простыня. Поискал информацию - везде говорят, что можно только асинхронно, но как тогда поступают в ситуациях похожих на мою?
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vorona
Peace 2 all shining faces
666 / 528 / 44
Регистрация: 05.03.2010
Сообщений: 1,271
04.12.2015, 04:23     Http request #21
AncientPenguin, вот серьезно, зачем выдумывать такой ущербный велосипед, если есть такие прекрасные решения, как промисы и сигналы, которыми сейчас весь продвинутый мир пользуется?

не легче сесть, прочитать и выучить один раз, чем каждый раз такую галимотью выдумывать?
AncientPenguin
98 / 45 / 18
Регистрация: 09.08.2015
Сообщений: 367
04.12.2015, 12:33     Http request #22
Цитата Сообщение от Vorona Посмотреть сообщение
не легче сесть, прочитать и выучить один раз, чем каждый раз такую галимотью выдумывать?
Лишняя функция vs лишний паттерн, и с чего вы взяли что написать паттерн (а там точно не повторно используемый код, 10 связанных запросов подряд) проще?
Vorona
Peace 2 all shining faces
666 / 528 / 44
Регистрация: 05.03.2010
Сообщений: 1,271
04.12.2015, 23:03     Http request #23
Цитата Сообщение от AncientPenguin Посмотреть сообщение
Лишняя функция vs лишний паттерн
ахах весь мир этим пользуется, потому что это лучшее на сегодня для подобных задач (упоминал про стримы, но они лучше подходят для более сложных конструкций, хотя и тут будут как влитые)
изучая паттерн, вы изучаете оптимальное решение и можете генерировать новые на его основе, а когда пишете очередную "функцию" (хотя в вашем случае это просто суп из методов), вы каждый раз тратите время на решения одной и той же задачи, можете еще велосипед и колесо каждое утро придумывать, судя вашей логике.
потому что суть в переиспользовании существующих решений, протестированных и проверенных, а не решении тривиальных задач через жопу.

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

считаю, что вам лучше бы ознакомиться с этими паттернами и библиотеками, а не спорить о том, что кусочек говнеца написанный на коленке может быть предложен, как решение и нормально использован в коде.

Objective-C
1
2
3
4
5
sendRequest1()
    .then(sendRequest2)
    .then(sendRequest3)
    .completed(notifyAboutCompletion)
    .failured(notifyAboutFailure)
vs

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
class facepalm
{
    func fakerequest1()
    {
        var request1 = {
            () -> () in
            self.fakerequest2()
        }
    }
    
    func fakerequest2()
    {
        var request2 = {
            () -> () in
            self.fakerequest3()
        }
    }
    
    func fakerequest3()
    {
        var request3 = {
            () -> () in
            // ...
        }
    }
}
а завтра вам надо их использовать в другом порядке, обрабатывать ошибки и вставлять промежуточные операции между ними, я поменяю одну строчку, вы же - перелопатите весь класс, что, кстати, противоречит SOLID, если слышали о таком

не позорились бы...
AncientPenguin
98 / 45 / 18
Регистрация: 09.08.2015
Сообщений: 367
05.12.2015, 07:11     Http request #24
Цитата Сообщение от Vorona Посмотреть сообщение
а завтра вам надо их использовать в другом порядке, обрабатывать ошибки и вставлять промежуточные операции между ними, я поменяю одну строчку, вы же - перелопатите весь класс, что, кстати, противоречит SOLID, если слышали о таком
Цитата Сообщение от Spelcrawler Посмотреть сообщение
И в каждом случае есть несколько вариантов дальнейшего поведения. Т.е. куча проверок на все что можно сбор разных параметров с разных запросов и использование этих параметров в дальнейших запросах.
Может вы сначала условия задачи прочтете прежде чем рассказывать что ваш паттерн в 150% ситуаций лучше.

Добавлено через 14 минут
Кстати:

Цитата Сообщение от Vorona Посмотреть сообщение
а завтра вам надо их использовать в другом порядке, обрабатывать ошибки и вставлять промежуточные операции между ними, я поменяю одну строчку, вы же - перелопатите весь класс
Там связанные функции и я легко могу вставить функцию между ними так же как и элемент в связный список, но то что вы этого не заметили намекает...
Vorona
Peace 2 all shining faces
666 / 528 / 44
Регистрация: 05.03.2010
Сообщений: 1,271
05.12.2015, 22:47     Http request #25
Насчет того читал ли я тз, естественно, промисы и стримы тут подходят не на 150 а на все 300%, но вы сильно умный чтобы в этом разбираться, лучше напишите пару говнофункций.

Ох ладно, что со стеной общаться, удачи вам в вашем "развитии".
Надеюсь ваши советы никто не будет слушать, иначе будут с вами костер палочками разжигать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2015, 21:46     Http request
Еще ссылки по теме:

File_get_contents failed to open stream: HTTP request failed! HTTP/1.1 505 PHP
Swift Отправка HTTP (не HTTPS) запроса в Swift 2.0 с использованием NSURLSession
C++ WinAPI Http POST request, wininet, winsock
Ошибки Synapse (HTTP/1.1 400 Bad Request / HTTP/1.1 413 Request Entity Too Large) Delphi
Http Request PHP

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

Или воспользуйтесь поиском по форуму:
AncientPenguin
98 / 45 / 18
Регистрация: 09.08.2015
Сообщений: 367
06.12.2015, 21:46     Http request #26
Vorona,

Не по теме:

и вам добра. На будущее, либо цитируйте часть сообщения либо в ник жмите когда кому то отвечаете, а то сообщения не приходят.

Yandex
Объявления
06.12.2015, 21:46     Http request
Ответ Создать тему
Опции темы

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