Как получить только контент Json из HttpEntity Java - PullRequest
0 голосов
/ 04 сентября 2018

Использование HttpEntity Я получаю очень длинный текст со специальными символами вместе с Json.

Я пробовал регулярное выражение, но оно не работает, так как в нем почти 30000 символов.

Есть ли способ, которым я могу получить только данные Json из HttpEntity. Даже разделение строк не сработало, поскольку в нем так много специальных символов.

public JSONObject sendGet(String URL, String userName, String password) throws Exception {
    getRequest = new HttpGet(URL);
    getRequest.addHeader("User-Agent", USER_AGENT);
    CredentialsProvider provider = new BasicCredentialsProvider();
    UsernamePasswordCredentials credentials = new UsernamePasswordCredentials(userName, password);
    provider.setCredentials(AuthScope.ANY, credentials);
    client = HttpClientBuilder.create().setDefaultCredentialsProvider(provider).build();
    response = client.execute(getRequest);
    HttpEntity entity = response.getEntity();
    outputFile = new File(directoryPath + "/target/response.txt");
    fos = new FileOutputStream(outputFile);
    headers = response.getAllHeaders();
    bw = new BufferedWriter(new OutputStreamWriter(fos));
    for (Header header: headers) {
        bw.write(header.getName() + ": " + header.getValue() + "\n");
    }
    bw.write(response.getEntity());
    bw.write("Response Code : " + response.getStatusLine());
    String content = EntityUtils.toString(entity); //When i print content it has string other than json as well
    JSONObject obj = new JSONObject(content); //Here i receive A JSONObject text must begin with '{' at 1 [character 2 line 1]
    JSONArray keys = obj.names();
    Object test = JSON.parse(content);
    jsonFiles = new File(directoryPath + "/JsonFiles/test.json");
    fos = new FileOutputStream(jsonFiles);
    bw = new BufferedWriter(new OutputStreamWriter(fos));
    bw.write(content);
    bw.close();
    return obj;
}

1 Ответ

0 голосов
/ 04 сентября 2018

Попробуйте добавить следующее Headers:

getRequest.addHeader("Accept", "application/json");
getRequest.addHeader("Content-Type", "application/json");
getRequest.addHeader("Accept-Charset", "utf-8");
...