Обратите внимание, что для каждой итерации цикла читаются две строки из rd
. В начале цикла while (rd.readLine() != null)
метод readLine()
возвращает текущую строку в rd
и устанавливает маркер итератора на следующей строке. Затем, когда readLine()
вызывается во второй раз, rd
возвращает следующую строку и объединяет ее со значением line
. Поскольку ответ на ваш запрос содержит только одну строку, второй вызов readLine()
возвращает null
, цикл тормозит, и строка возвращается со значением null
.
Вам следует сохранить значение, возвращенное при первом вызове, в readLine()
и использовать StringBuilder
для объединения.
StringBuilder builder = new StringBuilder();
BufferedReader rd = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
String line;
while ((line = rd.readLine()) != null) {
builder.append(line);
}
responseBody = builder.toString();
.
.
.
return responseBody;