0

私はAndroidアプリケーションを開発していますが、すべてがエラーではありませんが、コードを実行すると以下のエラーが見つかり、コードを追跡するとこの行で停止します:

HttpResponse httpResponse = httpClient.execute(httpPost);

コードの一部:

try {
        // defaultHttpClient

        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));
        Log.d("w", "2a json...................");
        HttpResponse httpResponse = httpClient.execute(httpPost);
        Log.d("w", "2b json...................");
        HttpEntity httpEntity = httpResponse.getEntity();
        Log.d("w", "2c json...................");
        is = httpEntity.getContent();
        Log.d("w", "3 json...................");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

エラー:

threadid=1: thread exiting with uncaught exception (group=0x410702a0)
FATAL EXCEPTION: main
android.os.NetworkOnMainThreadException
    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1118)
    at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84)
    at libcore.io.IoBridge.connectErrno(IoBridge.java:127)
    at libcore.io.IoBridge.connect(IoBridge.java:112)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459)
    at java.net.Socket.connect(Socket.java:842)
    at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:119)
4

1 に答える 1

0

Asynctaskを作成し、doInBackgroundメソッド内でネットワーク呼び出しを行います

これがあなたのコードです

class ABCTask extends AsyncTask<String, Void, Void> {

    private Exception exception;

    protected void doInBackground(String... urls) {
       try {
        // defaultHttpClient

        DefaultHttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setEntity(new UrlEncodedFormEntity(params));
        Log.d("w", "2a json...................");
        HttpResponse httpResponse = httpClient.execute(httpPost);
        Log.d("w", "2b json...................");
        HttpEntity httpEntity = httpResponse.getEntity();
        Log.d("w", "2c json...................");
        is = httpEntity.getContent();
        Log.d("w", "3 json...................");
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    }

    protected void onPostExecute() {

// write what u want to do after completion of the doInBackground method
    }
 }

 new ABCTask().execute();
于 2013-03-15T17:07:25.107 に答える