Get JSON Data from URL Using Android?

后端 未结 8 2062
长发绾君心
长发绾君心 2020-11-28 04:48

I am trying to get JSON data by parsing login url with username and password. I have tried by using below code but I can\'t get any responses. Please help me.

I am u

相关标签:
8条回答
  • 2020-11-28 05:27

    If you get the server response as a String, without using a third party library you can do

    JSONObject json = new JSONObject(response);
    JSONObject jsonResponse = json.getJSONObject("response");
    String team = jsonResponse.getString("Team");
    

    Here is the documentation

    Otherwise to parse json you can use Gson or Jackson

    EDIT without libraries (not tested)

    class retrievedata extends AsyncTask<Void, Void, String>{
        @Override
        protected String doInBackground(Void... params) {
    
            HttpURLConnection urlConnection = null;
            BufferedReader reader = null;
    
            URL url;
            try {
                url = new URL("http://myurlhere.com");
                urlConnection.setRequestMethod("GET"); //Your method here 
                urlConnection.connect();
    
                InputStream inputStream = urlConnection.getInputStream();
                StringBuffer buffer = new StringBuffer();
                if (inputStream == null) {
                    return null;
                }
                reader = new BufferedReader(new InputStreamReader(inputStream));
    
                String line;
                while ((line = reader.readLine()) != null)
                    buffer.append(line + "\n");
    
                if (buffer.length() == 0)
                    return null;
    
                return buffer.toString();
            } catch (IOException e) {
                Log.e(TAG, "IO Exception", e);
                exception = e;
                return null;
            } finally {
                if (urlConnection != null) {
                    urlConnection.disconnect();
                }
                if (reader != null) {
                    try {
                        reader.close();
                    } catch (final IOException e) {
                        exception = e;
                        Log.e(TAG, "Error closing stream", e);
                    }
                }
            }
        }
    
        @Override
        protected void onPostExecute(String response) {
            if(response != null) {
                JSONObject json = new JSONObject(response);
                JSONObject jsonResponse = json.getJSONObject("response");
                String team = jsonResponse.getString("Team");
            }
        }
    }
    
    0 讨论(0)
  • 2020-11-28 05:36

    My fairly short code to read JSON from an URL. (requires Guava due to usage of CharStreams).

        private static class VersionTask extends AsyncTask<String, String, String> {
            @Override
            protected String doInBackground(String... strings) {
                String result = null;
                URL url;
                HttpURLConnection connection = null;
                try {
                    url = new URL("https://api.github.com/repos/user_name/repo_name/releases/latest");
                    connection = (HttpURLConnection) url.openConnection();
                    connection.connect();
                    result = CharStreams.toString(new InputStreamReader(connection.getInputStream(), Charsets.UTF_8));
                } catch (IOException e) {
                    Log.d("VersionTask", Log.getStackTraceString(e));
                } finally {
                    if (connection != null) {
                        connection.disconnect();
                    }
                }
                return result;
            }
    
            @Override
            protected void onPostExecute(String result) {
                super.onPostExecute(result);
                if (result != null) {
                    String version = "";
                    try {
                        version = new JSONObject(result).optString("tag_name").trim();
                    } catch (JSONException e) {
                        Log.e("VersionTask", Log.getStackTraceString(e));
                    }
                    if (version.startsWith("v")) {
                        //process version
                    }
                }
            }
        }
    

    PS: This code gets the latest release version (based on tag name) for a given GitHub repo.

    0 讨论(0)
提交回复
热议问题