android操作系统调用异常

代码:

        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(URL);    
try{
            HttpResponse response = httpClient.execute(httpPost);
            String jsonResult = convertStreamToString((response.getEntity().getContent())).toString();
            JSONObject obj = (JSONObject) new JSONTokener(jsonResult).nextValue();
            JSONObject obj2 = obj.getJSONObject("GetRingkasObjekPajak_SingleResult");
            String nameWP = obj2.getString("NM_WP");
            TextView tv = (TextView)findViewById(R.id.dummy_text_three);
            tv.setText(jsonResult);
        }catch (MalformedURLException e) {
            // URL is invalid
            TextView tv = (TextView) findViewById(R.id.dummy_text_three);
            tv.setText("url invalid");
        } catch (SocketTimeoutException e) {
            // data retrieval or connection timed out
            TextView tv = (TextView) findViewById(R.id.dummy_text_three);
            tv.setText("RTO");
        } catch (IOException e) {
            // could not read response body 
            // (could not create input stream)
            TextView tv = (TextView) findViewById(R.id.dummy_text_three);
            tv.setText("couldnt read response");
        } catch (JSONException e) {
            // response body is no valid JSON string
            TextView tv = (TextView) findViewById(R.id.dummy_text_three);
            tv.setText("json response fail");
        }catch (Exception e) {
            // TODO: handle exception
            TextView tv = (TextView) findViewById(R.id.dummy_text_three);
            tv.setText(e.toString());
        }

我已经添加了权限。然后出现了NetworkOnMainThreadException。


冉冉说
浏览 421回答 1
1回答

九州编程

这有一个异步任务的例子,你可以看看。private class YourAsyncTaskClass extends AsyncTask {  @Override   protected String doInBackground(String... params) {        //your http network call here.         return null;   }         @Override   protected void onPostExecute(String result) {        //update your ui here   }   @Override   protected void onPreExecute() {          //do any code before exec   }   @Override   protected void onProgressUpdate(Void... values) {           //If you want to update a progress bar ..do it here   } }然后调用此类的时候:new YourAsyncTaskClass().execute();
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java