Reputation: 927
i am trying to post data on wamp's apache localhost using port no 8080 using below given code.
public class postdata extends Activity
{
Button btnpost;
EditText txtname,txtsalary;
TextView lblstatus;
String hostname;
@Override
protected void onCreate(Bundle savedInstanceState)
{
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main3);
btnpost=(Button)this.findViewById(R.id.btnpost);
txtname=(EditText)this.findViewById(R.id.txtname);
txtsalary=(EditText)this.findViewById(R.id.txtsalary);
final HttpClient client = new DefaultHttpClient();
final HttpPost post = new HttpPost("http://127.0.0.1:8080/andy1/script2.php");
btnpost.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View arg0)
{
try
{
List<NameValuePair> pair = new ArrayList<NameValuePair>(2);
pair.add(new BasicNameValuePair("txtname",txtname.getText().toString()));
pair.add(new BasicNameValuePair("txtsalary",txtsalary.getText().toString()));
post.setEntity(new UrlEncodedFormEntity(pair));
HttpResponse response = client.execute(post);
Toast.makeText(getApplicationContext(), "Record Saved",1000).show();
}
catch (ClientProtocolException e)
{
// TODO Auto-generated catch block
}
catch (IOException e)
{
Toast.makeText(getApplicationContext(), "Error in uploading",1000).show();
}
}
});
}
}
whenever i run above code on emulator i got the following error.
12-03 10:10:51.237: E/AndroidRuntime(281): FATAL EXCEPTION: main
12-03 10:10:51.237: E/AndroidRuntime(281): java.lang.IllegalArgumentException: Host name may not be null
12-03 10:10:51.237: E/AndroidRuntime(281): at org.apache.http.HttpHost.<init>(HttpHost.java:83)
12-03 10:10:51.237: E/AndroidRuntime(281): at org.apache.http.impl.client.AbstractHttpClient.determineTarget(AbstractHttpClient.java:497)
12-03 10:10:51.237: E/AndroidRuntime(281): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
12-03 10:10:51.237: E/AndroidRuntime(281): at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
12-03 10:10:51.237: E/AndroidRuntime(281): at demo.network.postdata$1.onClick(postdata.java:65)
12-03 10:10:51.237: E/AndroidRuntime(281): at android.view.View.performClick(View.java:2408)
12-03 10:10:51.237: E/AndroidRuntime(281): at android.view.View$PerformClick.run(View.java:8816)
12-03 10:10:51.237: E/AndroidRuntime(281): at android.os.Handler.handleCallback(Handler.java:587)
12-03 10:10:51.237: E/AndroidRuntime(281): at android.os.Handler.dispatchMessage(Handler.java:92)
12-03 10:10:51.237: E/AndroidRuntime(281): at android.os.Looper.loop(Looper.java:123)
12-03 10:10:51.237: E/AndroidRuntime(281): at android.app.ActivityThread.main(ActivityThread.java:4627)
12-03 10:10:51.237: E/AndroidRuntime(281): at java.lang.reflect.Method.invokeNative(Native Method)
12-03 10:10:51.237: E/AndroidRuntime(281): at java.lang.reflect.Method.invoke(Method.java:521)
12-03 10:10:51.237: E/AndroidRuntime(281): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-03 10:10:51.237: E/AndroidRuntime(281): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-03 10:10:51.237: E/AndroidRuntime(281): at dalvik.system.NativeStart.main(Native Method)
i have also tried to use 10.0.0.2 as IP address as it was one of the solution posted in other post but did not work at all. i have tried lot to solve this error using net but could not succeed.
Upvotes: 2
Views: 4004
Reputation: 52956
Unless you are running a Web server in the emulator you need to use the IP address of your development machine. Use ifconfig
(Linux, etc.) or ipconfig
(Windows) to find out what the address is. Should be something like '192.168.xxx.xxx` for a local network.
Or use 10.0.2.2 to refer to the development machine's loopback interface as suggested in the other answer. Here's the link to the relevant docs for the emulator: http://developer.android.com/tools/devices/emulator.html#networkaddresses
Upvotes: 1
Reputation: 3619
For accessing localhost (development sys) you have to use 10.0.2.2 (not 10.0.0.2).
for more information look here
Upvotes: 2
Reputation: 2119
You can find ip from internet ..go to http://whatsmyip.net/ and this ip used in your project
final HttpPost post = new HttpPost("http://ip:8080/andy1/script2.php");
Upvotes: 0