android编程中的JsonException
当我使用http post获取参数时,我得到了一个android编程中的JsonException,android,json,http-post,Android,Json,Http Post,当我使用http post获取参数时,我得到了一个JsonException 代码如下: protected ArrayList<String> doInBackground(ArrayList<String>... params) { ArrayList<String> nameSuccess = new ArrayList<String>(); HttpClient httpclient = new Defau
JsonException
代码如下:
protected ArrayList<String> doInBackground(ArrayList<String>... params) {
ArrayList<String> nameSuccess = new ArrayList<String>();
HttpClient httpclient = new DefaultHttpClient();
GeneralConstans GC = new GeneralConstans();
HttpPost httpget = new HttpPost(GC.PasswordUrl);
HttpResponse response;
String result = null;
try {
HttpContext ctx = new BasicHttpContext();
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(
2);
nameValuePairs.add(new BasicNameValuePair("otpPwd", EdtText
.getText().toString()));
httpget.setEntity(new UrlEncodedFormEntity(nameValuePairs,
"UTF-8"));
response = httpclient.execute(httpget, ctx);
HttpEntity resEntity = response.getEntity();
if (resEntity != null) {
result = EntityUtils.toString(resEntity);
JSONObject arr = new JSONObject(result);
name = (arr.get("name")).toString();
error = (arr.get("error")).toString();
nameSuccess.add(0, name);
nameSuccess.add(1, error);
}
return nameSuccess;
} catch (JSONException e) {
e.printStackTrace();
}
return null;
}
受保护的ArrayList doInBackground(ArrayList…params){
ArrayList nameSuccess=新建ArrayList();
HttpClient HttpClient=新的DefaultHttpClient();
GeneralConstans GC=新的GeneralConstans();
HttpPost-httpget=newhttppost(GC.PasswordUrl);
HttpResponse响应;
字符串结果=null;
试一试{
HttpContext ctx=新的BasicHttpContext();
List name valuepairs=new ArrayList(
2);
添加(新的BasicNameValuePair(“otpPwd”),EdtText
.getText().toString());
httpget.setEntity(新的UrlEncodedFormEntity(nameValuePairs,
“UTF-8”);
response=httpclient.execute(httpget,ctx);
HttpEntity当前性=response.getEntity();
if(最近性!=null){
结果=EntityUtils.toString(最近性);
JSONObject arr=新JSONObject(结果);
name=(arr.get(“name”)).toString();
error=(arr.get(“error”).toString();
nameSuccess.add(0,名称);
nameSuccess.add(1,错误);
}
返回名称成功;
}捕获(JSONException e){
e、 printStackTrace();
}
返回null;
}
atJSONObject arr=新JSONObject(结果)代码>我得到异常的行
我是Android编程新手
loccat:
08-14 16:23:59.388:E/WindowManager(10626):活动tr.com.turkcell.shmobile.passwordconfirmation活动已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@414fa9e0原来是加在这里的
08-14 16:23:59.388:E/WindowManager(10626):android.view.WindowLeaked:Activity tr.com.turkcell.shmobile.passwordconfirmation活动已泄漏window com.android.internal.policy.impl.PhoneWindow$DecorView@414fa9e0原来是加在这里的
08-14 16:23:59.388:E/WindowManager(10626):在android.view.ViewRootImpl。(ViewRootImpl.java:374)
08-14 16:23:59.388:E/WindowManager(10626):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:292)
08-14 16:23:59.388:E/WindowManager(10626):在android.view.WindowManagerImpl.addView(WindowManagerImpl.java:224)
08-14 16:23:59.388:E/WindowManager(10626):在android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:149)
08-14 16:23:59.388:E/WindowManager(10626):在android.view.Window$LocalWindowManager.addView(Window.java:549)
08-14 16:23:59.388:E/WindowManager(10626):在android.app.Dialog.show(Dialog.java:277)
08-14 16:23:59.388:E/WindowManager(10626):在android.app.ProgressDialog.show(ProgressDialog.java:116)上
08-14 16:23:59.388:E/WindowManager(10626):在android.app.ProgressDialog.show(ProgressDialog.java:99)上
08-14 16:23:59.388:E/WindowManager(10626):在android.app.ProgressDialog.show(ProgressDialog.java:94)上
08-14 16:23:59.388:E/WindowManager(10626):在tr.com.turkcell.shmobile.PasswordConfirmationActivity$GetName.onPreExecute(PasswordConfirmationActivity.java:140)
08-14 16:23:59.388:E/WindowManager(10626):位于android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
08-14 16:23:59.388:E/WindowManager(10626):在android.os.AsyncTask.execute(AsyncTask.java:534)
08-14 16:23:59.388:E/WindowManager(10626):在tr.com.turkcell.shmobile.PasswordConfirmationActivity$1$1.run(PasswordConfirmationActivity.java:53)
08-14 16:23:59.388:E/WindowManager(10626):在android.app.Activity.runOnUiThread(Activity.java:4591)上
08-14 16:23:59.388:E/WindowManager(10626):在tr.com.turkcell.shmobile.PasswordConfirmationActivity$1.onClick(PasswordConfirmationActivity.java:50)
08-14 16:23:59.388:E/WindowManager(10626):在android.view.view.performClick(view.java:4084)上
08-14 16:23:59.388:E/WindowManager(10626):在android.view.view$PerformClick.run(view.java:16966)
08-14 16:23:59.388:E/WindowManager(10626):在android.os.Handler.handleCallback(Handler.java:615)上
08-14 16:23:59.388:E/WindowManager(10626):位于android.os.Handler.dispatchMessage(Handler.java:92)
08-14 16:23:59.388:E/WindowManager(10626):在android.os.Looper.loop(Looper.java:137)
08-14 16:23:59.388:E/WindowManager(10626):位于android.app.ActivityThread.main(ActivityThread.java:4754)
08-14 16:23:59.388:E/WindowManager(10626):位于java.lang.reflect.Method.Invokenactive(本机方法)
08-14 16:23:59.388:E/WindowManager(10626):位于java.lang.reflect.Method.invoke(Method.java:511)
08-14 16:23:59.388:E/WindowManager(10626):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
08-14 16:23:59.388:E/WindowManager(10626):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
08-14 16:23:59.388:E/WindowManager(10626):在dalvik.system.NativeStart.main(本机方法)
08-14 16:24:00.788:W/System.err(10626):org.json.JSONException:Value(JSONObject.java:158)
08-14 16:24:00.788:W/System.err(10626):位于org.json.JSONObject.(JSONObject.java:171)
08-14 16:24:00.788:W/System.err(10626):在tr.com.turkcell.shmobile.PasswordConfirmationActivity$GetName.doInBackground(PasswordConfirmationActivity.java:102)
08-14 16:24:00.798:W/System.err(10626):在tr.com.turkcell.shmobile.PasswordConfirmationActivity$GetName.doInBackground(PasswordConfirmationActivity.java:1)
08-14 16:24:00.798:W/System.err(10626):在android.os.AsyncTask$2.call(AsyncTask.java:287)
08-14 16:24:00.798:W/System.err(10626):在java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
08-14 16:24:00.798:W/System.err(10626):位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
08-14 16:24:00.798:W/System.err(10626):在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
08-14 16:24:00.798:W/System.er
HttpPost post = new HttpPost("SERVER_URL");
HttpClient hc = new DefaultHttpClient();
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("otpPwd", EdtText
.getText().toString()));
try {
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
post.getParams().setBooleanParameter("http.protocol.expect-continue", false);
HttpResponse rp = hc.execute(post);
json = EntityUtils.toString(rp.getEntity());
if (!json.equals("") || !json.equals(null)) {
JSONObject arr = new JSONObject(result);
name = (arr.get("name")).toString();
error = (arr.get("error")).toString();
nameSuccess.add(0, name);
nameSuccess.add(1, error);
}
return json;
} catch (NoRouteToHostException er) {
er.printStackTrace();
return null;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}