原理:

android客户端通过使用org.apache.http.impl.client.DefaultHttpClient类来发送数据;

方法介绍:

HttpClient是android中提供的一个类 , 也是apache开源组织提供的项目 , 他是个简单的HTTP客户端, 而不是一个浏览器 , 可以用于发送HTTP请求,接受http响应.但是不会缓存服务器的响应,不能执行html中in个内嵌的JS代码,也不会对页面的额内容进行任何的解析和处理;

这句话的意思就是:如果你请求的页面内容是:

<HTML>

<BODY>

<br/>

</BODY>

</HTML>的话 , 他是

一个请求的发送大致可以分为:

step1 创建HttpClient对象 详情请看代码中标识的1.1- 1.2 1.3

step2 创建POST请求的对象---HttpPost

step3 为HttpPost对象中放入参数--setParams(HttpParams ) 或者是setEntity(HttpEntity)

step4 通过HttpClient.exec(HttpPost)方法会返回一个HttpResponse对象 ; 这个对象中提供有获取服务器的响应头,获取服务器的响应内容等等

------------------>>>

Demo:

 1 package com.creazy.demohttpclient; 2  3 import android.app.Activity; 4 import android.app.AlertDialog; 5 import android.content.DialogInterface; 6 import android.os.Looper; 7 import android.support.v7.app.AppCompatActivity; 8 import android.os.Bundle; 9 import android.view.Menu;10 import android.view.MenuItem;11 import android.view.View;12 import android.widget.Button;13 import android.widget.EditText;14 import android.widget.TextView;15 import android.widget.Toast;16 17 import org.apache.http.HttpResponse;18 import org.apache.http.NameValuePair;19 import org.apache.http.client.HttpClient;20 import org.apache.http.client.entity.UrlEncodedFormEntity;21 import org.apache.http.client.methods.HttpPost;22 import org.apache.http.impl.client.DefaultHttpClient;23 import org.apache.http.message.BasicNameValuePair;24 import org.apache.http.protocol.HTTP;25 import org.apache.http.util.EntityUtils;26 27 import java.io.IOException;28 import java.io.UnsupportedEncodingException;29 import java.util.ArrayList;30 import java.util.List;31 32 public class MainActivity extends Activity33 {34 35     private Button btn_login;36     private Button btn_reg;37 38     private HttpClient httpClient //init ...初始化成员变量<1.2>39         this.btn_login = (Button)findViewById(R.id.login);40         this.btn_reg = (Button)findViewById(R.id.regiser);41        42         this.httpClient = new DefaultHttpClient() //load login View43         final View loginDialog = getLayoutInflater().inflate(R.layout.login_layout , null );44         AlertDialog.Builder bud = new AlertDialog.Builder(MainActivity.this);45         bud.setTitle("login");46         bud.setView(loginDialog);47         bud.setPositiveButton("ok", new DialogInterface.OnClickListener() {48             @Override49             public void onClick(DialogInterface dialogInterface, int i) {50                 //get user info51                 final String name = ((EditText) loginDialog.findViewById(R.id.user)).getText().toString();52                 final String pass = ((EditText) loginDialog.findViewById(R.id.passed)).getText().toString();53 54 55                 new Thread() {56                     @Override57                     public void run() {58                         super.run();59                         String url = "http://192.168.1.101:8080/DemoLogin/LoginServlet";60                         Step2,这个对象中含有请求的URL 61                                                 params.add(new BasicNameValuePair("pass", pass));62 63                         try {64                             //设置请求参数65                             Step3.( response.getEntity        bud.show();66 67 68 69     }70 71 72     public void  showRegister(View v)73     {74       /**75 注册页面的代码省略76 **/77 78     }79 }

====================================================================================
如图: 这是在浏览器中访问的数据结果:
Android客户端向服务器端发送数据的流程(1)
android 客户端:

Android客户端向服务器端发送数据的流程(1)

不输入任何用户信息
   

Android客户端向服务器端发送数据的流程(1)

=============================>此时 发现android中的Toast显示的数据 和反问浏览器时的数据一致 说明: 我们这条道路走通了

                                                                                            

更多相关文章

  1. Android的数据存储之一------SharedPreferences
  2. Android数据绑定Data Binding初体验
  3. Android 绑定数据到界面控件
  4. RTC搭建android下三层应用程序访问服务器MsSql-客户端
  5. Android使用AIDL跨进程数据共享
  6. Android 传感器的 数据流和框架
  7. Android仿人人客户端
  8. Android 数据操作之SQLiteDatabase
  9. 获取PCM音频数据的声音分贝值

随机推荐

  1. 2010.11.28(3)———android AlertDialog
  2. Android——ImageButton【图片按钮】的点
  3. Android平台mass storage相关代码
  4. Android Module中导入aar
  5. Android中的颜色
  6. WebView控件中的javascript与Android本地
  7. android开机logo制作
  8. 常见UI控件的使用-富文本、textview
  9. 关于android系统自带数据库SQLite操作的
  10. Android(安卓)远程连接 daemon not runni