title: Android : JSON Parser with async task (GET and POST methods)
body: <p>Just want to check whether this JSON Parser with async task is it correctly done? When I put this code into my Eclipse, this (method.equals("POST") was underline red. And it state that the 'method' cannot be solved. Any suggestion or help in this? Thank you. </p>
  
  <pre><code>public class JSONParser {
  
    static InputStream is = null;
    static JSONObject jObj = null;
    static String json = "";
    String url=null;
       List&lt;NameValuePair&gt; nvp=null;
       // constructor
       public JSONParser() {
  
     }
  
    // function get json from url
    // by making HTTP POST or GET method
     public JSONObject makeHttpRequest(String url, String method,
          List&lt;NameValuePair&gt; params) {
        BackGroundTask Task= new BackGroundTask(url, method,  params);
      try {
          return Task.execute().get();
      } catch (InterruptedException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          return null;
      } catch (ExecutionException e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
          return null;
      }
  }
  public class BackGroundTask extends AsyncTask&lt;String, String, JSONObject&gt;{
      List&lt;NameValuePair&gt; postparams= new ArrayList&lt;NameValuePair&gt;();
      String URL=null;
  public BackGroundTask(String url, String method, List&lt;NameValuePair&gt; params) {
          URL=url;
          postparams=params;
      }
      @Override
      protected JSONObject doInBackground(String... params) {
          // TODO Auto-generated method stub
          // Making HTTP request
          try {
      // Making HTTP request 
          // check for request method
  
      if(method.equals("POST")){
              // request method is POST
              // defaultHttpClient
              DefaultHttpClient httpClient = new DefaultHttpClient();
              HttpPost httpPost = new HttpPost(url);
              httpPost.setEntity(new UrlEncodedFormEntity(postparams));
  
              HttpResponse httpResponse = httpClient.execute(httpPost);
              HttpEntity httpEntity = httpResponse.getEntity();
              is = httpEntity.getContent();
  
          }else if(method == "GET"){
              // request method is GET
              DefaultHttpClient httpClient = new DefaultHttpClient();
              String paramString = URLEncodedUtils.format(postparams, "utf-8");
              url += "?" + paramString;
              HttpGet httpGet = new HttpGet(url);
  
              HttpResponse httpResponse = httpClient.execute(httpGet);
              HttpEntity httpEntity = httpResponse.getEntity();
              is = httpEntity.getContent();
          }           
  
      } catch (UnsupportedEncodingException e) {
          e.printStackTrace();
      } catch (ClientProtocolException e) {
          e.printStackTrace();
      } catch (IOException e) {
          e.printStackTrace();
      }
  
      try {
  
          BufferedReader reader = new BufferedReader(new InputStreamReader(
                  is, "iso-8859-1"), 8);
          StringBuilder sb = new StringBuilder();
          String line = null;
          while ((line = reader.readLine()) != null) {
              sb.append(line + "\n");
          }
          is.close();
          json = sb.toString();
      } catch (Exception e) {
          Log.e("Buffer Error", "Error converting result " + e.toString());
      }
  
      // try parse the string to a JSON object
      try {
          jObj = new JSONObject(json);
      } catch (JSONException e) {
          Log.e("JSON Parser", "Error parsing data " + e.toString());
      }
  
      // return JSON String
      return jObj;
  
     }
   }
  }
  </code></pre>