Note that there are some explanatory texts on larger screens.

plurals
  1. POConnection errors when making requests to local server from Android
    primarykey
    data
    text
    <p>I am building an app that parsers json into a listview from a database. I have used a PHP script to encode the data from the database in the JSON format below:</p> <pre><code>[ {"id":"1","artistname":"Rihanna"}, {"id":"2","artistname":"Katy Perry"}, {"id":"3","artistname":"DJ Dibs"}, {"id":"4","artistname":"Jamie Foxx"}, {"id":"5","artistname":"Disclosure"} ] </code></pre> <p>Here is the parser class which returns the data above as a string:</p> <pre><code> package com.example.jsontester; public class JsonParser { static InputStream is = null; static JSONObject jsonObject = null; static String data = ""; public JsonParser() { } public String getJSONFromUrl(String url) { // Making HTTP request try { DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); HttpResponse httpResponse = httpClient.execute(httpPost); HttpEntity httpEntity = httpResponse.getEntity(); is = httpEntity.getContent(); } catch (UnsupportedEncodingException exception) { exception.printStackTrace(); } catch (ClientProtocolException exception) { exception.printStackTrace(); } catch (IOException exception) { exception.printStackTrace(); } //Gets the JSON String try { BufferedReader reader = new BufferedReader(new InputStreamReader( is, "iso-8859-1"), 8); StringBuilder sBuilder = new StringBuilder(); String line = null; //Appends the string to the line while ((line = reader.readLine()) != null) { sBuilder.append(line + "\n"); } is.close(); data = sBuilder.toString(); } catch (Exception exception) { exception.printStackTrace(); } return data; } } </code></pre> <p>Here is the activity which creates the listview with the chart items</p> <pre><code>package com.example.jsontester; public class JsonActivity extends ListActivity{ private ProgressDialog progressDialog; // JSON Node names private static final String TAG_ITEM = "item"; private static final String TAG_ID = "id"; private static final String TAG_ARTISTNAME = "artistname"; // chartItemList is the array list that holds the chart items ArrayList&lt;HashMap&lt;String, Integer&gt;&gt; chartItemList = new ArrayList&lt;HashMap&lt;String, Integer&gt;&gt;(); JsonParser Parser = new JsonParser(); // JSONArray JSONArray chartItems = null; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.progressdialog); //url from where the JSON has to be retrieved String url = &lt;&lt;http://127.0.0.1/mmcv/&gt;&gt;; //Check if the user has a connection ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo info = cm.getActiveNetworkInfo(); if (info != null) { if (!info.isConnected()) { Toast.makeText(this, "Please check your connection and try again.", Toast.LENGTH_SHORT).show(); } //if positive, fetch the articles in background else new getChartItems().execute(url); } //else show toast else { Toast.makeText(this, "Please check your connection and try again.", Toast.LENGTH_SHORT).show(); } } class getChartItems extends AsyncTask&lt;String, String, String&gt; { // Shows a progress dialog while executing background task @Override protected void onPreExecute() { super.onPreExecute(); progressDialog = new ProgressDialog(JsonActivity.this); progressDialog.setMessage("Loading chart..."); progressDialog.setIndeterminate(false); progressDialog.setCancelable(false); progressDialog.show(); } //Gets the json data for chart items data and presents it in a list view @Override protected String doInBackground(String... args) { String url = &lt;&lt;http://127.0.0.1/mmcv&gt;&gt;; String json = Parser.getJSONFromUrl(url); System.out.println("Json should be below me"); System.out.println(json); int id; String artistname; try{ chartItems = new JSONArray(json); JSONObject json_data=null; for(int i=0;i&lt;chartItems.length();i++){ json_data = chartItems.getJSONObject(i); artistname=json_data.getString("TAG_ARTISTNAME"); id=json_data.getInt("TAG_ID"); HashMap&lt;String, Integer&gt; hashMap = new HashMap&lt;String, Integer&gt;(); // adding each child node to HashMap key =&gt; value hashMap.put(artistname,id); // adding HashMap to ArrayList chartItemList.add(hashMap); } } catch (JSONException e) { e.printStackTrace(); } runOnUiThread(new Runnable() { public void run() { //updating list view with the parsed items ListAdapter adapter = new SimpleAdapter(JsonActivity.this, chartItemList, R.layout.listview, new String[] { TAG_ID, TAG_ARTISTNAME }, new int[] {R.id.id, R.id.artistname }); setListAdapter(adapter); } }); return null; } //Removes the progress dialog when the data has been fetched protected void onPostExecute(String args) { progressDialog.dismiss(); } } } </code></pre> <p>Here is the logcat:</p> <pre><code>01-19 15:45:49.816: D/libEGL(29490): loaded /vendor/lib/egl/libEGL_POWERVR_SGX540_120.so 01-19 15:45:49.867: W/System.err(29490): org.apache.http.conn.HttpHostConnectException: Connection to (http://127.0.0.1) refused 01-19 15:45:49.898: D/libEGL(29490): loaded /vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so 01-19 15:45:49.902: D/libEGL(29490): loaded /vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so 01-19 15:45:49.914: W/System.err(29490): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:183) 01-19 15:45:49.918: W/System.err(29490): at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164) 01-19 15:45:49.925: W/System.err(29490): at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119) 01-19 15:45:49.925: W/System.err(29490): at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360) 01-19 15:45:49.925: W/System.err(29490): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555) 01-19 15:45:49.925: W/System.err(29490): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487) 01-19 15:45:49.929: W/System.err(29490): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465) 01-19 15:45:49.929: W/System.err(29490): at com.example.jsontester.JsonParser.getJSONFromUrl(JsonParser.java:36) 01-19 15:45:49.929: W/System.err(29490): at com.example.jsontester.JsonActivity$getChartItems.doInBackground(JsonActivity.java:83) 01-19 15:45:49.929: W/System.err(29490): at com.example.jsontester.JsonActivity$getChartItems.doInBackground(JsonActivity.java:1) 01-19 15:45:49.933: W/System.err(29490): at android.os.AsyncTask$2.call(AsyncTask.java:287) 01-19 15:45:49.933: W/System.err(29490): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 01-19 15:45:49.933: W/System.err(29490): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 01-19 15:45:49.933: W/System.err(29490): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 01-19 15:45:49.933: W/System.err(29490): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 01-19 15:45:49.937: W/System.err(29490): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 01-19 15:45:49.937: W/System.err(29490): at java.lang.Thread.run(Thread.java:856) 01-19 15:45:49.937: W/System.err(29490): Caused by: java.net.ConnectException: failed to connect to /&lt;&lt;127.0.0.1&gt;&gt; (port 80): connect failed: ECONNREFUSED (Connection refused) 01-19 15:45:49.941: W/System.err(29490): at libcore.io.IoBridge.connect(IoBridge.java:114) 01-19 15:45:49.941: W/System.err(29490): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 01-19 15:45:49.945: W/System.err(29490): at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459) 01-19 15:45:49.945: W/System.err(29490): at java.net.Socket.connect(Socket.java:842) 01-19 15:45:49.945: W/System.err(29490): at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119) 01-19 15:45:49.957: W/System.err(29490): at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:144) 01-19 15:45:49.957: D/OpenGLRenderer(29490): Enabling debug mode 0 01-19 15:45:49.957: W/System.err(29490): ... 16 more 01-19 15:45:49.961: W/System.err(29490): Caused by: libcore.io.ErrnoException: connect failed: ECONNREFUSED (Connection refused) 01-19 15:45:49.972: W/System.err(29490): at libcore.io.Posix.connect(Native Method) 01-19 15:45:49.992: W/System.err(29490): at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:85) 01-19 15:45:49.992: W/System.err(29490): at libcore.io.IoBridge.connectErrno(IoBridge.java:127) 01-19 15:45:49.992: W/System.err(29490): at libcore.io.IoBridge.connect(IoBridge.java:112) 01-19 15:45:49.992: W/System.err(29490): ... 21 more 01-19 15:45:49.992: W/System.err(29490): java.lang.NullPointerException 01-19 15:45:49.996: W/System.err(29490): at java.io.Reader.&lt;init&gt;(Reader.java:64) 01-19 15:45:49.996: W/System.err(29490): at java.io.InputStreamReader.&lt;init&gt;(InputStreamReader.java:79) 01-19 15:45:50.000: W/System.err(29490): at com.example.jsontester.JsonParser.getJSONFromUrl(JsonParser.java:51) 01-19 15:45:50.000: W/System.err(29490): at com.example.jsontester.JsonActivity$getChartItems.doInBackground(JsonActivity.java:83) 01-19 15:45:50.007: W/System.err(29490): at com.example.jsontester.JsonActivity$getChartItems.doInBackground(JsonActivity.java:1) 01-19 15:45:50.011: W/System.err(29490): at android.os.AsyncTask$2.call(AsyncTask.java:287) 01-19 15:45:50.011: W/System.err(29490): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 01-19 15:45:50.023: W/System.err(29490): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 01-19 15:45:50.031: W/System.err(29490): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 01-19 15:45:50.031: W/System.err(29490): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 01-19 15:45:50.035: W/System.err(29490): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 01-19 15:45:50.035: W/System.err(29490): at java.lang.Thread.run(Thread.java:856) 01-19 15:45:50.039: I/System.out(29490): Json should be below me 01-19 15:45:50.050: W/System.err(29490): org.json.JSONException: End of input at character 0 of 01-19 15:45:50.125: W/System.err(29490): at org.json.JSONTokener.syntaxError(JSONTokener.java:450) 01-19 15:45:50.152: W/System.err(29490): at org.json.JSONTokener.nextValue(JSONTokener.java:97) 01-19 15:45:50.152: W/System.err(29490): at org.json.JSONArray.&lt;init&gt;(JSONArray.java:87) 01-19 15:45:50.152: W/System.err(29490): at org.json.JSONArray.&lt;init&gt;(JSONArray.java:103) 01-19 15:45:50.152: W/System.err(29490): at com.example.jsontester.JsonActivity$getChartItems.doInBackground(JsonActivity.java:92) 01-19 15:45:50.152: W/System.err(29490): at com.example.jsontester.JsonActivity$getChartItems.doInBackground(JsonActivity.java:1) 01-19 15:45:50.156: W/System.err(29490): at android.os.AsyncTask$2.call(AsyncTask.java:287) 01-19 15:45:50.156: W/System.err(29490): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305) 01-19 15:45:50.156: W/System.err(29490): at java.util.concurrent.FutureTask.run(FutureTask.java:137) 01-19 15:45:50.156: W/System.err(29490): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230) 01-19 15:45:50.156: W/System.err(29490): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076) 01-19 15:45:50.156: W/System.err(29490): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569) 01-19 15:45:50.156: W/System.err(29490): at java.lang.Thread.run(Thread.java:856) </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload