歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android編程學習:通過http請求與Apache通信(完整版)

Android編程學習:通過http請求與Apache通信(完整版)

日期:2017/3/1 10:30:15   编辑:Linux編程

post_datas.php

[php]
  1. <?php
  2. @header("content-type:text/html; charset=gb2312");
  3. echo $_REQUEST['user'];
  4. echo $_REQUEST['passwd'];
  5. echo $_REQUEST['para'];
  6. ?>

Mini2440Activity.java

[java]
  1. package sg131971.mini2440;
  2. import java.io.IOException;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import org.apache.http.HttpResponse;
  6. import org.apache.http.NameValuePair;
  7. import org.apache.http.client.ClientProtocolException;
  8. import org.apache.http.client.HttpClient;
  9. import org.apache.http.client.entity.UrlEncodedFormEntity;
  10. import org.apache.http.client.methods.HttpPost;
  11. import org.apache.http.impl.client.DefaultHttpClient;
  12. import org.apache.http.message.BasicNameValuePair;
  13. import org.apache.http.util.EntityUtils;
  14. import Android.app.Activity;
  15. import android.os.Bundle;
  16. import android.view.View;
  17. import android.view.View.OnClickListener;
  18. import android.widget.Button;
  19. public class Mini2440Activity extends Activity {
  20. public class myButtonListener implements OnClickListener {
  21. private HttpResponse response;
  22. private String tmpString;
  23. public void onClick(View arg0) {
  24. // TODO Auto-generated method stub
  25. HttpClient httpclient = new DefaultHttpClient();
  26. HttpPost httppost = new HttpPost("http://192.168.1.123/post_datas.php");
  27. try {
  28. List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(3);
  29. nameValuePairs.add(new BasicNameValuePair("user", "root"));
  30. nameValuePairs.add(new BasicNameValuePair("passwd","shiguang"));
  31. nameValuePairs.add(new BasicNameValuePair("para","58402F01"));
  32. httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
  33. response = httpclient.execute(httppost);
  34. tmpString = EntityUtils.toString(response.getEntity());
  35. System.out.print(tmpString);
  36. } catch (ClientProtocolException e) {
  37. // TODO Auto-generated catch block
  38. e.printStackTrace();
  39. } catch (IOException e) {
  40. // TODO Auto-generated catch block
  41. e.printStackTrace();
  42. }
  43. }
  44. }
  45. private Button myButton;
  46. /** Called when the activity is first created. */
  47. @Override
  48. public void onCreate(Bundle savedInstanceState) {
  49. super.onCreate(savedInstanceState);
  50. setContentView(R.layout.main);
  51. myButton = (Button) findViewById(R.id.myButton);
  52. myButton.setOnClickListener(new myButtonListener());
  53. }
  54. }
main.xml

[html]
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <Button android:id="@+id/myButton"
  8. android:text="@string/myButton"
  9. android:layout_height="wrap_content"
  10. android:layout_width="91dp"
  11. android:layout_x="126dp"
  12. android:layout_y="70dp"
  13. ></Button>
  14. </AbsoluteLayout>
AndroidManifest.xml [html]
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="sg131971.mini2440"
  4. android:versionCode="1"
  5. android:versionName="1.0">
  6. <uses-sdk android:minSdkVersion="4" />
  7. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  8. <uses-permission android:name="android.permission.INTERNET" />
  9. <application android:icon="@drawable/icon" android:label="@string/app_name">
  10. <activity android:name=".Mini2440Activity"
  11. android:label="@string/app_name">
  12. <intent-filter>
  13. <action android:name="android.intent.action.MAIN" />
  14. <category android:name="android.intent.category.LAUNCHER" />
  15. </intent-filter>
  16. </activity>
  17. </application>
  18. </manifest>
下面兩行一定不能少,否則你的程序是不能使用網絡的。

[html]
  1. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
  2. <uses-permission android:name="android.permission.INTERNET" />
仿真結果:



Copyright © Linux教程網 All Rights Reserved