Note that there are some explanatory texts on larger screens.

plurals
  1. POAsynctask with webservices in android
    text
    copied!<p>i need help.. i'm trying to call php webservices from my android client application ,and i couldn't call it from main thread coz the SDK is 15 ,and I search on the web and I found the solution for this problem is to use the Asynktask .. but it doesn't work with me i don't know why .. any help please ..Thank you </p> <pre><code>public class CustomWebConnection extends AsyncTask&lt;Void, Void, String&gt; { private final String uri = "http://localhost/mywebservices.php?op=GetAllRest"; private ArrayList&lt;NameValuePair&gt; mParams; private OnPostExecuteListener mPostExecuteListener = null; public static interface OnPostExecuteListener{ void onPostExecute(String result); } CustomWebConnection(ArrayList&lt;NameValuePair&gt; nameValuePairs, OnPostExecuteListener postExecuteListener) throws Exception { mParams = nameValuePairs; mPostExecuteListener = postExecuteListener; if (mPostExecuteListener == null) throw new Exception("Param cannot be null."); } @Override protected String doInBackground(Void... params) { JSONObject param=null; String result = null; HttpClient httpClient = new DefaultHttpClient(); HttpHost httpHost = new HttpHost("localhost",80); HttpPost httpPost = new HttpPost(uri); httpPost.addHeader("Content-Type", "application/json; charset=utf-8"); try { //HttpEntity bodyEntity = new StringEntity(param.toString(), "utf8"); //httpPost.setEntity(bodyEntity); HttpResponse response = httpClient.execute(httpPost); HttpEntity entity = response.getEntity(); if (entity != null) { InputStream instream = entity.getContent(); BufferedReader reader = new BufferedReader( new InputStreamReader(instream)); StringBuilder sb = new StringBuilder(); String line = null; while ((line = reader.readLine()) != null) sb.append(line + "\n"); result = sb.toString(); instream.close(); } } catch(Exception e) { e.printStackTrace(); } httpPost.abort(); return result ; } @Override protected void onPostExecute(String result) { if (mPostExecuteListener != null){ try { JSONObject json = new JSONObject(result); mPostExecuteListener.onPostExecute(result); } catch (JSONException e){ e.printStackTrace(); } } } </code></pre> <p>and it's throw this exception </p> <pre><code> 04-09 16:31:37.393: E/AndroidRuntime(2284): FATAL EXCEPTION: main 04-09 16:31:37.393: E/AndroidRuntime(2284): java.lang.NullPointerException 04-09 16:31:37.393: E/AndroidRuntime(2284): at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116) 04-09 16:31:37.393: E/AndroidRuntime(2284): at org.json.JSONTokener.nextValue(JSONTokener.java:94) 04-09 16:31:37.393: E/AndroidRuntime(2284): at org.json.JSONObject.&lt;init&gt;(JSONObject.java:154) 04-09 16:31:37.393: E/AndroidRuntime(2284): at org.json.JSONObject.&lt;init&gt;(JSONObject.java:171) 04-09 16:31:37.393: E/AndroidRuntime(2284): at com.vtab.CustomWebConnection.onPostExecute(CustomWebConnection.java:92) 04-09 16:31:37.393: E/AndroidRuntime(2284): at com.vtab.CustomWebConnection.onPostExecute(CustomWebConnection.java:1) 04-09 16:31:37.393: E/AndroidRuntime(2284): at android.os.AsyncTask.finish(AsyncTask.java:602) 04-09 16:31:37.393: E/AndroidRuntime(2284): at android.os.AsyncTask.access$600(AsyncTask.java:156) 04-09 16:31:37.393: E/AndroidRuntime(2284): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615) 04-09 16:31:37.393: E/AndroidRuntime(2284): at android.os.Handler.dispatchMessage(Handler.java:99) 04-09 16:31:37.393: E/AndroidRuntime(2284): at android.os.Looper.loop(Looper.java:137) 04-09 16:31:37.393: E/AndroidRuntime(2284): at android.app.ActivityThread.main(ActivityThread.java:4424) 04-09 16:31:37.393: E/AndroidRuntime(2284): at java.lang.reflect.Method.invokeNative(Native Method) 04-09 16:31:37.393: E/AndroidRuntime(2284): at java.lang.reflect.Method.invoke(Method.java:511) 04-09 16:31:37.393: E/AndroidRuntime(2284): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 04-09 16:31:37.393: E/AndroidRuntime(2284): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 04-09 16:31:37.393: E/AndroidRuntime(2284): at dalvik.system.NativeStart.main(Native Method) </code></pre> <p>the error at <code>HttpResponse response = httpClient.execute(httpPost);</code></p> <p>and this is the <strong>JSON response</strong> from the server </p> <pre><code>[{"rest_id":"1","rest_name":"Al Dabke","cuisine":"Lebanese","no_tables":"15","bg_img":"lebanon","rest_logo":"dabke"},{"rest_id":"4","rest_name":"MY KIND OF PLACE","cuisine":null,"no_tables":"10","bg_img":"kindofplacebg","rest_logo":"mykindofplacelogo"},{"rest_id":"5","rest_name":"LANTANIA","cuisine":"Thai","no_tables":"10","bg_img":"lantaniabg","rest_logo":"lantanialogo"},{"rest_id":"6","rest_name":"LEONARDO","cuisine":"italian","no_tables":"10","bg_img":"leonardobg","rest_logo":"leonardologo"},{"rest_id":"7","rest_name":"LE MARCHE ","cuisine":"French","no_tables":"10","bg_img":"lemarchebg","rest_logo":"lemarchelogo"},{"rest_id":"8","rest_name":"Marias","cuisine":"mexican","no_tables":"10","bg_img":"mariang","rest_logo":"marialogo"},{"rest_id":"9","rest_name":"NOBLE HOUSE","cuisine":"chinese","no_tables":"10","bg_img":"noblehousebg","rest_logo":"noblehouselogo"}] </code></pre> <p>any help please </p>
 

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