garaster 2013-06-04 08:28 采纳率: 0%
浏览 2043
已采纳

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。

  • 写回答

1条回答 默认 最新

  • abcdeFGh_xyz 2013-06-04 09:15
    关注

    这有一个异步任务的例子,你可以看看。

    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();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。