2015-05-13 1 views
2

Я начинаю с первоначального запроса URI GET. Я возвращаю результат вместе со ссылкой на следующую партию записей. Я петлю до этого, пока не получаю все записи. Просто кажется, что производительность становится хитом, поскольку регистратор показывает начало и остановку HttpClientHelper после каждого запроса. Можно ли это избежать?переименование страницы HttpClientHelper start/stop

Client client = new Client(new Context(), Protocol.HTTP); 
ClientResource clientResource; 
JsonRepresentation rep; 
JSONObject object; 
while(nextURI !=null) 
{ 
    clientResource = new ClientResource(nextURI); 

    //excessive HttpClientHelper start/stop triggered at next line 
    rep = new JsonRepresentation(service.get(MediaType.APPLICATION_JSON)); 

    clientResource.setNext(client); 
    . 
    . 
    . 
} 

Logger показывает следующее:

13 мая 2015 9:30:52 AM org.restlet.ext.net.HttpClientHelper начать

INFO: Запуск клиента HTTP 13 мая , 2015 9:30:53 AM org.restlet.ext.net.HttpClientHelper начать

INFO: Запуск клиента HTTP май 13, старт 2015 9:30:53 AM org.restlet.ext.net.HttpClientHelper

INFO: Запуск HTTP-клиент Май 13, 2015 9:30:53 AM org.restlet.ext.net.HttpClientHelper остановить

INFO: Остановка клиента HTTP 13 мая 2015 9:30:53 AM org.restlet.ext.net.HttpClientHelper остановить

INFO: остановка клиенту HTTP

ответ

1

Я думаю, что вы вызываете метод setNext слишком поздно. Вы должны вызвать его перед любым HTTP-вызовом и сразу после создания вашего экземпляра ClientResource, чтобы предотвратить запуск клиентского соединителя при каждом вызове.

Вы можете найти образец ниже:

Client client = new Client(new Context(), Protocol.HTTP); 

for (int i = 0; i < 5; i++) { 
    ClientResource clientResource = new ClientResource("http://..."); 
    clientResource.setNext(client); 

    Representation representation = clientResource.get(); 
    (...) 
} 

В этом случае разъем клиент только начал один раз.

Надеется, что это помогает вам, Тьерри

+0

Спасибо ... что прояснился вопросом! –