Как читать ответ в виде обычного текста / строки, а не в JSON - PullRequest
2 голосов
/ 18 июня 2020

Я хочу прочитать эти простые числа, являющиеся ответом HTTP API.

enter image description here
У меня есть ответ, но я понятия не имею, как мне преобразовать это вставить в мой код.
ниже - это код, который я пробовал, но не смог.

try {
            //Prepare Connection
            myURL = new URL(url);
            myURLConnection = myURL.openConnection();
            myURLConnection.connect();
            //reading response
            reader= new BufferedReader(new InputStreamReader(myURLConnection.getInputStream()));
            while ((response = reader.readLine()) != null)
                //print response
                Toast.makeText(getApplicationContext(),response,Toast.LENGTH_SHORT).show();

            //finally close connection
            reader.close();
        }
        catch (IOException e){
            e.printStackTrace();
            Toast.makeText(getApplicationContext(), ""+e.toString(), Toast.LENGTH_SHORT).show();
        }

Ответы [ 2 ]

3 голосов
/ 18 июня 2020

Попробуйте этот код.

    private static String readServerResponse(HttpURLConnection connection) {
        // read the output from the server
        String response = null;
        BufferedReader reader = null;
        InputStreamReader inputStreamReader = null;
        try {
            StringBuilder stringBuilder = new StringBuilder();
            InputStream responseStream = connection.getErrorStream();
            if (responseStream == null)  {
                responseStream = connection.getInputStream();
            }

            inputStreamReader = new InputStreamReader(responseStream);
            reader = new BufferedReader(inputStreamReader);

            String line;
            while ((line = reader.readLine()) != null) {
                stringBuilder.append(line).append('\n');
            }
            response = stringBuilder.toString();
        } catch (Throwable t) {
            Log.i(LOG_TAG, "Could not read connection response from: " + connection.getURL().toString(), t);
        } finally {
            try {
                if (reader != null) {
                    reader.close();
                }
                if (inputStreamReader != null) {
                    inputStreamReader.close();
                }
            } catch (Throwable ignore) {
            }
        }    
        return response;
    }
3 голосов
/ 18 июня 2020

Вы можете использовать java URL-соединение http / https для получения ответа от входного потока.

String getText(String url) throws IOException {
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();
//add headers to the connection, or check the status if desired..

// handle error response code it occurs
int responseCode = conn.getResponseCode();
InputStream inputStream;
if (200 <= responseCode && responseCode <= 299) {
    inputStream = connection.getInputStream();
} else {
    inputStream = connection.getErrorStream();
}

BufferedReader in = new BufferedReader(
    new InputStreamReader(
        inputStream));

StringBuilder response = new StringBuilder();
String currentLine;

while ((currentLine = in.readLine()) != null) 
    response.append(currentLine);

in.close();

return response.toString();
}
...