public ClientResponse uploadRequest(final FileUploadRequest request) { final Map<String, String> uploadParameters = new HashMap<String, String>(); final String datasetName = request.getDatasetName(); if(datasetName != null) { uploadParameters.put("files_0|NAME", datasetName); } else { uploadParameters.put("files_0|NAME", request.getFiles().iterator().next().getName()); } uploadParameters.put("dbkey", request.getDbKey()); uploadParameters.put("file_type", request.getFileType()); uploadParameters.putAll(request.getExtraParameters()); final Map<String, Object> requestParameters = new HashMap<String, Object>(); requestParameters.put("tool_id", request.getToolId()); requestParameters.put("history_id", request.getHistoryId()); requestParameters.put("inputs", write(uploadParameters)); requestParameters.put("type", "upload_dataset"); return multipartPost(getWebResource(), requestParameters, prepareUploads(request.getFileObjects())); }