原理:

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 客户端:

不输入任何用户信息
   

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



更多相关文章

  1. 类和 Json对象
  2. 《Android权威编程指南》挑战练习:定制 toast 消息
  3. android 实现图片上传功能 Tomcat作为服务器
  4. Android中Message机制的灵活应用(一)
  5. Android的线程使用来更新UI----Thread、Handler、Looper、TimerT
  6. Android消息处理机制(二)
  7. Android(安卓)Telephony 框架分析
  8. [android深入学习]android窗口管理机制
  9. Android架构组件(三)——ViewModel

随机推荐

  1. Android 长按setOnItemLongClickListener
  2. Android电话录音
  3. Android、iPhone手机刘海屏适配判断
  4. Android 播放资源文件视频
  5. Android中的Banner效果
  6. Android NDK Development ---- Android 4
  7. android 设定activity的进入和退出效果
  8. android surfaceflinger boot
  9. 用SlidingDrawer实现类似android状态栏下
  10. Android知识点整理