zoukankan      html  css  js  c++  java
  • Android客户端向服务器端发送数据的流程(1)

    原理:

    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 Activity
    33 {
    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 View
    43         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             @Override
    49             public void onClick(DialogInterface dialogInterface, int i) {
    50                 //get user info
    51                 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                     @Override
    57                     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显示的数据 和反问浏览器时的数据一致  说明:  我们这条道路走通了

     
  • 相关阅读:
    解决SharePoint 2010拒绝访问爬网内容源错误
    Sharepoint 2010 工作流状态值
    修改任务显示WrkTaskIp.aspx页面
    Infopath 2013 通过UserProfileService读取AD用户信息
    js验证
    .net中下载文件的方法(转)
    IIS限制ASP.Net 文件上传大小解决方案,修改IIS7/7.5配置
    SharePoint2013 SharePoint-Hosted 模式 分页方法
    技术QQ群
    react学习
  • 原文地址:https://www.cnblogs.com/greentomlee/p/4670484.html
Copyright © 2011-2022 走看看