Note that there are some explanatory texts on larger screens.

plurals
  1. POHow to use jsonwebservices in Android?
    text
    copied!<p>I want to implement jsonwebservices in my Android app with login page. I don't know how to do it. I have trying but at the run time I got exception <code>RuntimeException</code> and <code>NullpointerException</code> while executing <code>doInBackGround</code>.</p> <p>Here is my Activity code.</p> <pre><code>btnLogin=(Button)findViewById(R.id.button_Login); btnLogin.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub if (!isOnline()) { showNoConnectionDialog(Login.this); } else { connectWithHttpGet_LoginData(); } } }); } private void connectWithHttpGet_LoginData() { GetJSONParse getjsonparse = new GetJSONParse(); getjsonparse.execute(); } class GetJSONParse extends AsyncTask&lt;String, Void, JSONObject&gt; { @Override protected void onPreExecute() { super.onPreExecute(); strUserName = etextUsername.getText().toString().trim(); strPassWord = etextPassword.getText().toString().trim(); pDialog = new ProgressDialog(Login.this); pDialog.setIndeterminate(true); pDialog.setCancelable(true); pDialog.show(); System.out.println("Progress Dialog!!!!!!!!!!!!!!!!!!!!!!!"); } @Override protected JSONObject doInBackground(String... args) { String strUrl = "http://test.window2india.com/cms/json/w2iWS"; Log.e("strUrl "," = "+strUrl); JSONParser jParser = new JSONParser(); Log.e("DoinBackground !!!!!","Method"); // Getting JSON from URL JSONObject json = jParser.getJSONFromUrl(strUrl,null); String jsonString=json.toString(); Log.e("jsonString in DoinBackground !!!!!","Method" + jsonString); return json ; } @Override protected void onPostExecute(JSONObject json) { super.onPostExecute(json); pDialog.dismiss(); try { // Getting JSON Array // JSONObject jsonObject = user.getJSONObject(0); json.put(KEY_REQUEST_ID, RequestId); json.put(KEY_REQUEST_CODE, RequestCode); json.put(KEY_CHANNEL_ID, stringChannelId); json.put(KEY_IP_ADDRESS, str_Device_IP_Address); json.put(KEY_USERNAME, strUserName); json.put(KEY_PASSWORD, strPassWord); String jstr = json.toString(); Log.e("in","onPostExecute(String json) = " + jstr); String encrypted1 = EncodeDecodeAES.encrypt(json.toString(), textToEncrypt); System.out.println("encrypted1 =" + encrypted1); JSONObject inner = new JSONObject(); inner.put(KEY_REQUEST, encrypted1); inner.put(KEY_VENDOR_ID, "1"); String decrypted = EncodeDecodeAES.decrypt(json.toString(), encrypted); System.out.println("decrypted =" + decrypted); } catch (JSONException e) { e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } </code></pre> <p>Here is my Log Cat stack trace. When run the application when I entered any info in text and click on the button at the time of shows progress dialog then and when finish the dialog application is crashed and exception occur.</p> <pre><code>12-06 12:15:29.993: E/AndroidRuntime(595): FATAL EXCEPTION: AsyncTask #2 12-06 12:15:29.993: E/AndroidRuntime(595): java.lang.RuntimeException: An error occured while executing doInBackground() 12-06 12:15:29.993: E/AndroidRuntime(595): at android.os.AsyncTask$3.done(AsyncTask.java:200) 12-06 12:15:29.993: E/AndroidRuntime(595): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:274) 12-06 12:15:29.993: E/AndroidRuntime(595): at java.util.concurrent.FutureTask.setException(FutureTask.java:125) 12-06 12:15:29.993: E/AndroidRuntime(595): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:308) 12-06 12:15:29.993: E/AndroidRuntime(595): at java.util.concurrent.FutureTask.run(FutureTask.java:138) 12-06 12:15:29.993: E/AndroidRuntime(595): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088) 12-06 12:15:29.993: E/AndroidRuntime(595): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581) 12-06 12:15:29.993: E/AndroidRuntime(595): at java.lang.Thread.run(Thread.java:1019) 12-06 12:15:29.993: E/AndroidRuntime(595): Caused by: java.lang.NullPointerException 12-06 12:15:29.993: E/AndroidRuntime(595): at org.apache.http.client.utils.URLEncodedUtils.format(URLEncodedUtils.java:160) 12-06 12:15:29.993: E/AndroidRuntime(595): at org.apache.http.client.entity.UrlEncodedFormEntity.&lt;init&gt;(UrlEncodedFormEntity.java:71) 12-06 12:15:29.993: E/AndroidRuntime(595): at com.window2india.JSONParser.getJSONFromUrl(JSONParser.java:40) 12-06 12:15:29.993: E/AndroidRuntime(595): at com.window2india.Login$GetJSONParse.doInBackground(Login.java:158) 12-06 12:15:29.993: E/AndroidRuntime(595): at com.window2india.Login$GetJSONParse.doInBackground(Login.java:1) 12-06 12:15:29.993: E/AndroidRuntime(595): at android.os.AsyncTask$2.call(AsyncTask.java:185) 12-06 12:15:29.993: E/AndroidRuntime(595): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306) 12-06 12:15:29.993: E/AndroidRuntime(595): ... 4 more 12-06 12:15:32.003: E/WindowManager(595): Activity com.window2india.Login has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40580198 that was originally added here 12-06 12:15:32.003: E/WindowManager(595): android.view.WindowLeaked: Activity com.window2india.Login has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@40580198 that was originally added here 12-06 12:15:32.003: E/WindowManager(595): at android.view.ViewRoot.&lt;init&gt;(ViewRoot.java:258) 12-06 12:15:32.003: E/WindowManager(595): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148) 12-06 12:15:32.003: E/WindowManager(595): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91) 12-06 12:15:32.003: E/WindowManager(595): at android.view.Window$LocalWindowManager.addView(Window.java:424) 12-06 12:15:32.003: E/WindowManager(595): at android.app.Dialog.show(Dialog.java:241) 12-06 12:15:32.003: E/WindowManager(595): at com.window2india.Login$GetJSONParse.onPreExecute(Login.java:144) 12-06 12:15:32.003: E/WindowManager(595): at android.os.AsyncTask.execute(AsyncTask.java:391) 12-06 12:15:32.003: E/WindowManager(595): at com.window2india.Login.connectWithHttpGet_LoginData(Login.java:124) 12-06 12:15:32.003: E/WindowManager(595): at com.window2india.Login.access$1(Login.java:121) 12-06 12:15:32.003: E/WindowManager(595): at com.window2india.Login$1.onClick(Login.java:114) 12-06 12:15:32.003: E/WindowManager(595): at android.view.View.performClick(View.java:2485) 12-06 12:15:32.003: E/WindowManager(595): at android.view.View$PerformClick.run(View.java:9080) 12-06 12:15:32.003: E/WindowManager(595): at android.os.Handler.handleCallback(Handler.java:587) 12-06 12:15:32.003: E/WindowManager(595): at android.os.Handler.dispatchMessage(Handler.java:92) 12-06 12:15:32.003: E/WindowManager(595): at android.os.Looper.loop(Looper.java:130) 12-06 12:15:32.003: E/WindowManager(595): at android.app.ActivityThread.main(ActivityThread.java:3683) 12-06 12:15:32.003: E/WindowManager(595): at java.lang.reflect.Method.invokeNative(Native Method) 12-06 12:15:32.003: E/WindowManager(595): at java.lang.reflect.Method.invoke(Method.java:507) 12-06 12:15:32.003: E/WindowManager(595): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 12-06 12:15:32.003: E/WindowManager(595): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 12-06 12:15:32.003: E/WindowManager(595): at dalvik.system.NativeStart.main(Native Method) </code></pre> <p>This is JSONParse code</p> <pre><code>public class JSONParser { static InputStream is = null; static JSONObject jObj = null; static String json = ""; // constructor public JSONParser() { } public JSONObject getJSONFromUrl(String url, List&lt;NameValuePair&gt; params) { // Making HTTP request try { // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(url); httpPost.setEntity(new UrlEncodedFormEntity(params)); HttpResponse httpResponse = httpClient.execute(httpPost); 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(); Log.e("JSON", json); } 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>
 

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