-2

I try an example from a video for http client and i want to load data from that site but when i run it it does not show anything , here is my getmethod code:

public class GetMethodEx {

public String getInternetData() throws Exception{
    BufferedReader in= null;
    String data=null;
    try{
        HttpClient client = new DefaultHttpClient();
        URI website = new URI("http://www.mybringback.com");
        HttpGet request = new HttpGet();
        request.setURI(website);
        HttpResponse response = client.execute(request);
        in = new BufferedReader(new InputStreamReader(response.getEntity().getContent()));
        StringBuffer sb = new StringBuffer("");
        String l = "";
        String nl= System.getProperty("line.seperator");
        while((l=in.readLine()) != null)
        {
            sb.append(l+nl);
        }
        in.close();
        data = sb.toString();
        return data;
    }finally{
        if(in != null){
            try{
                in.close();
                return data;
            }catch(Exception e)
            {
                e.getStackTrace();
            }
        }
    }

}

}

and here is main code :

TextView httpStuff;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.httpex);
    httpStuff=(TextView)findViewById(R.id.tvhttp);
    GetMethodEx test = new GetMethodEx();
    String returned;
    try {
        returned = test.getInternetData();
        httpStuff.setText(returned);
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}

and this is my logcat:

06-13 09:54:17.713: W/System.err(1367): android.os.NetworkOnMainThreadException
    06-13 09:54:17.713: W/System.err(1367):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
    06-13 09:54:17.713: W/System.err(1367):     at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
    06-13 09:54:17.721: W/System.err(1367):     at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
    06-13 09:54:17.721: W/System.err(1367):     at java.net.InetAddress.getAllByName(InetAddress.java:214)
    06-13 09:54:17.733: W/System.err(1367):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
    06-13 09:54:17.733: W/System.err(1367):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
    06-13 09:54:17.733: W/System.err(1367):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
    06-13 09:54:17.737: W/System.err(1367):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
    06-13 09:54:17.737: W/System.err(1367):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
    06-13 09:54:17.737: W/System.err(1367):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
    06-13 09:54:17.741: W/System.err(1367):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
    06-13 09:54:17.741: W/System.err(1367):     at com.amirhossein.simon.GetMethodEx.getInternetData(GetMethodEx.java:22)
    06-13 09:54:17.745: W/System.err(1367):     at com.amirhossein.simon.Httpex.onCreate(Httpex.java:20)
    06-13 09:54:17.745: W/System.err(1367):     at android.app.Activity.performCreate(Activity.java:5231)
    06-13 09:54:17.749: W/System.err(1367):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
    06-13 09:54:17.749: W/System.err(1367):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
    06-13 09:54:17.753: W/System.err(1367):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
    06-13 09:54:17.753: W/System.err(1367):     at android.app.ActivityThread.access$800(ActivityThread.java:135)
    06-13 09:54:17.753: W/System.err(1367):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
    06-13 09:54:17.757: W/System.err(1367):     at android.os.Handler.dispatchMessage(Handler.java:102)
    06-13 09:54:17.757: W/System.err(1367):     at android.os.Looper.loop(Looper.java:136)
    06-13 09:54:17.761: W/System.err(1367):     at android.app.ActivityThread.main(ActivityThread.java:5017)
    06-13 09:54:17.765: W/System.err(1367):     at java.lang.reflect.Method.invokeNative(Native Method)
    06-13 09:54:17.765: W/System.err(1367):     at java.lang.reflect.Method.invoke(Method.java:515)
    06-13 09:54:17.769: W/System.err(1367):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
    06-13 09:54:17.769: W/System.err(1367):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
    06-13 09:54:17.769: W/System.err(1367):     at dalvik.system.NativeStart.main(Native Method)
    06-13 09:54:17.917: W/EGL_genymotion(1367): eglSurfaceAttrib not implemented
adboco
  • 2,840
  • 1
  • 21
  • 21
amirhtk
  • 135
  • 2
  • 2
  • 10

1 Answers1

0

You cant run those Network Operations in the Main UI.

Use an AsyncTask for executing your HTTP Request in the Background or a Thread for your Network Operations.

You can find an example at How to fix android.os.NetworkOnMainThreadException?

Community
  • 1
  • 1
Emanuel
  • 8,027
  • 2
  • 37
  • 56