private <U extends OkHttpResultIterator> U getIteratedResourceImpl(Class<U> clazz, RequestLogger reqlog,
String path, Transaction transaction, RequestParameters params, String... mimetypes)
throws ResourceNotFoundException, ForbiddenUserException, FailedRequestException
{
if ( params == null ) params = new RequestParameters();
if (transaction != null) params.add("txid", transaction.getTransactionId());
Request.Builder requestBldr = makeGetWebResource(path, params, null);
requestBldr = setupRequest(requestBldr, null, null);
requestBldr = addTransactionScopedCookies(requestBldr, transaction);
requestBldr = addTelemetryAgentId(requestBldr);
requestBldr = requestBldr.header(HEADER_ACCEPT, multipartMixedWithBoundary());
Function<Request.Builder, Response> doGetFunction = new Function<Request.Builder, Response>() {
public Response apply(Request.Builder funcBuilder) {
return doGet(funcBuilder);
}
};
Response response = sendRequestWithRetry(requestBldr, (transaction == null), doGetFunction, null);
int status = response.code();
checkStatus(response, status, "read", "resource", path,
ResponseStatus.OK_OR_NO_CONTENT);
return makeResults(clazz, reqlog, "read", "resource", response);
}