程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> http-android操作系統調用異常

http-android操作系統調用異常

編輯:編程綜合問答
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。

最佳回答:


這有一個異步任務的例子,你可以看看。

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();
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved