Когда я вызываю VSTS API для загрузки файла со специальными символами, мое имя файла обрезается, и все специальные символы игнорируются - PullRequest
1 голос
/ 26 июня 2019

Я звоню в 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;
}
...