GCDWebServer(iOS). как я могу запросить 2 разных пути с одним и тем же портом? (например, 8080)

при использовании GCDWebServer (iOS) я хочу запросить 2 URL-адреса, например: 192.168.0.121/sample, 192.168.0.121/sample2 с тем же портом, что и 8080. Но один успех, один не удалось. Я знаю, что порт занят, но как его избежать ?

это моя демонстрация, спасибо за спуск... https://github.com/liman123/MockServer_demo

Я прочитал весь README и проверил пример приложения, но все еще не могу найти решение, может ли кто-нибудь мне помочь? (Пусть GCDWebServer поддерживает разные пути с одним и тем же портом), спасибо!


person Community    schedule 11.09.2015    source источник
comment
Прежде чем задавать вопросы, обязательно прочитайте README, документацию заголовка и просмотрите примеры приложений. Такое базовое использование GCDWebServer подробно задокументировано.   -  person Pol    schedule 11.09.2015
comment
Я прочитал весь README и проверил пример приложения, но все еще не могу найти решение, можете ли вы мне помочь (пусть GCDWebServer поддерживает разные пути с одним и тем же портом), спасибо!   -  person    schedule 11.09.2015
comment
Если это то, что вы пытаетесь сделать, у вас не может быть 2 экземпляров GCDWebServer, работающих на одном порту. Вы должны использовать один и установить несколько обработчиков, как показано в README и примерах.   -  person Pol    schedule 11.09.2015
comment
да! У меня получилось, спасибо!   -  person    schedule 12.09.2015
comment
Отлично, тогда я сделал это настоящим ответом. Пожалуйста примите.   -  person Pol    schedule 13.09.2015


Ответы (2)


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

    [_webServer addHandlerForMethod:@"GET"
                          path:@"/path/one"
                  requestClass:[GCDWebServerRequest class]
                  processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {

                      GCDWebServerDataResponse* response = [GCDWebServerDataResponse responseWithHTML:@"<html><body><p>Hello World</p></body></html>"];
                      return response;

                  }];

А второй может выглядеть так:

    [_webServer addHandlerForMethod:@"GET"
                          path:@"/path/two"
                  requestClass:[GCDWebServerRequest class]
                  processBlock:^GCDWebServerResponse *(GCDWebServerRequest* request) {

                      GCDWebServerDataResponse* response = [GCDWebServerDataResponse responseWithHTML:@"<html><body><p>Hello a second time</p></body></html>"];
                      return response;

                  }];

Примеры: https://github.com/swisspol/GCDWebServer.

person Mexx    schedule 20.01.2017

У вас не может быть 2 экземпляров GCDWebServer, работающих на одном и том же порту. Вы должны использовать один и установить несколько обработчиков, как показано в README и примерах.

person Pol    schedule 12.09.2015