Я звоню в VSTS API, чтобы загрузить файл с именем файла, содержащим специальные символы.Но имя файла усекается, и все символы, начиная с первых специальных символов, получают усеченное имя файла .egif file2367@#$$$##
, затем соответствующий загруженный файл file2367@
, а все остальные символы усекаются.Ниже приведен код, который я использую для загрузки приложений.
public String uploadAttachment(InputStream inputStream, String fileName) throws Exception {
fileName=URLEncoder.encode(fileName,"UTF-8");
logger.info("******file name is******* :" + fileName);
String query = getBaseUrl() + "_apis/wit/attachments?filename=" + fileName;
HttpPost httpPost = new HttpPost(query);
httpPost.addHeader("Content-Type", "application/json");
httpPost.addHeader("Accept", "application/json;api-version=1.0");
httpPost.setEntity(new InputStreamEntity(inputStream));
String authHeader = getAuthHeader();
httpPost.addHeader("Authorization", authHeader);
httpPost = ProxyConnectionUtility.getInstance().configureProxy(httpPost);
CloseableHttpResponse response = httpClient.execute(httpPost);
logger.info("VSTS attachment response:" + response);
HttpEntity responseEntity = response.getEntity();
String strResponse = EntityUtils.toString(responseEntity, "UTF-8");
int iStatusCode = response.getStatusLine().getStatusCode();
if (iStatusCode != 200 && iStatusCode != 201) {
throw new Exception("Record could not be updated due to the error: " + strResponse);
}
return strResponse;
}