@Override public Result<? extends EntryCreatedRS> log(SaveLogRQ rq) throws RestEndpointIOException { if (null == rq.getFile()) { EntryCreatedRS response = endpoint.post(apiBase + "/" + project + "/log", rq, EntryCreatedRS.class); return new Result<EntryCreatedRS>(response); } else { MultiPartRequest<SaveLogRQ[]> request = new MultiPartRequest.Builder<SaveLogRQ[]>() .addSerializedPart(Constants.LOG_REQUEST_JSON_PART, new SaveLogRQ[] { rq }).addBinaryPart(rq.getFile().getName(), rq.getFile().getName(), ContentType.APPLICATION_OCTET_STREAM.getMimeType(), rq.getFile().getContent()) .build(); BatchSaveOperatingRS response = endpoint.post(apiBase + "/" + project + "/log", request, BatchSaveOperatingRS.class); if (response.getResponses() == null || response.getResponses().size() == 0) { throw new InternalReportPortalClientException("Report portal hasn't sent any response."); } return new Result<EntryCreatedRS>(response.getResponses().get(0)); } }