-1
    package com.example.simplewebservices;

    import java.io.IOException;

    import org.apache.http.HttpResponse;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.util.EntityUtils;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.TextView;

    public class MainActivity extends Activity {

    @SuppressWarnings("deprecation")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new       HttpPost("http://192.168.0.11/android_connect/first.php");
        try {
           HttpResponse response = httpclient.execute(httppost);
           final String str =  EntityUtils.toString(response.getEntity());
           TextView tv = (TextView) findViewById(R.id.textView1);
           tv.setText(str);
        } 
       catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
        }
    }


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}

Here is activity_main.xml

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.simplewebservices.MainActivity" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textView1" 
        android:text="TextView"/>

    </RelativeLayout>

Here manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.simplewebservices"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

Here Logcat information

05-09 15:07:59.726: E/AndroidRuntime(2456): FATAL EXCEPTION: main
05-09 15:07:59.726: E/AndroidRuntime(2456): Process:   com.example.simplewebservices, PID: 2456
05-09 15:07:59.726: E/AndroidRuntime(2456): java.lang.RuntimeException: Unable to start activity    C omponentInfo{com.example.simplewebservices/com.example.simplewebservices.MainActivity}: android.os.NetworkOnMainThreadException
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.app.ActivityThread.access$800(ActivityThread.java:151)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.os.Handler.dispatchMessage(Handler.java:102)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.os.Looper.loop(Looper.java:135)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.app.ActivityThread.main(ActivityThread.java:5254)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at java.lang.reflect.Method.invoke(Native Method)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at java.lang.reflect.Method.invoke(Method.java:372)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
05-09 15:07:59.726: E/AndroidRuntime(2456): Caused by: android.os.NetworkOnMainThreadException
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1147)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:110)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at libcore.io.IoBridge.connectErrno(IoBridge.java:137)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at libcore.io.IoBridge.connect(IoBridge.java:122)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:183)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:456)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at java.net.Socket.connect(Socket.java:882)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at org.apache.http.conn.scheme.PlainSocketFactory.connectSocket(PlainSocketFactory.java:124)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:149)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:169)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:124)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:365)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:560)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:492)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:470)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at com.example.simplewebservices.MainActivity.onCreate(MainActivity.java:27)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.app.Activity.performCreate(Activity.java:5990)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
05-09 15:07:59.726: E/AndroidRuntime(2456):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
05-09 15:07:59.726: E/AndroidRuntime(2456):     ... 10 more

`this is simple webservices(hello world) in android using php.i Create php file and copy it in to www directory of wamp server.but when i run this application its unfortunately stopped.and below i mention logcat information. how its solve it?give me suggestion..

harsuu
  • 36
  • 3

1 Answers1

0

The problem you call HTTP connection from main thread. You must call any network operation in other thread.

To solve it use AsyncTask and do the http operation on doInBackground method. This solved this exception.

Ahmed M. Abed
  • 599
  • 3
  • 9
  • 22