原理:

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:

 package com.creazy.demohttpclient;

 import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Looper;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast; import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils; import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List; public class MainActivity extends Activity
{ private Button btn_login;
private Button btn_reg; private HttpClient httpClient //init ...初始化成员变量<1.2>
this.btn_login = (Button)findViewById(R.id.login);
this.btn_reg = (Button)findViewById(R.id.regiser); this.httpClient = new DefaultHttpClient() //load login View
final View loginDialog = getLayoutInflater().inflate(R.layout.login_layout , null );
AlertDialog.Builder bud = new AlertDialog.Builder(MainActivity.this);
bud.setTitle("login");
bud.setView(loginDialog);
bud.setPositiveButton("ok", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//get user info
final String name = ((EditText) loginDialog.findViewById(R.id.user)).getText().toString();
final String pass = ((EditText) loginDialog.findViewById(R.id.passed)).getText().toString(); new Thread() {
@Override
public void run() {
super.run();
String url = "http://192.168.1.101:8080/DemoLogin/LoginServlet";
Step2,这个对象中含有请求的URL
params.add(new BasicNameValuePair("pass", pass)); try {
//设置请求参数
Step3.( response.getEntity bud.show(); } public void showRegister(View v)
{
      /**
注册页面的代码省略
**/ }
}
 
====================================================================================
 
如图: 这是在浏览器中访问的数据结果:
android 客户端:

不输入任何用户信息
 

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

 

Android客户端向服务器端发送数据的流程(1)的更多相关文章

  1. SSH服务器与Android通信(1)--服务器端发送数据

    很多应用要求SSH服务器不仅和PC通信,还要和Android移动设备通信,这时就需要用到JSON了.其基本原理是服务器将数据转换成JSON格式,发送给Android客户端,客户端再将JSON格式的数据 ...

  2. android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下   首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的U ...

  3. (转)android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下       首先客户端从服务器端获取json数据 1.利用HttpUrlConnection   复制代码 ...

  4. Android客户端和服务器端数据交互

    网上有很多例子来演示Android客户端和服务器端数据如何实现交互不过这些例子大多比较繁杂,对于初学者来说这是不利的,现在介绍几种代码简单.逻辑清晰的交互例子,本篇博客介绍第四种: 一.服务器端: 代 ...

  5. android客户端向服务器发送请求中文乱码的问

    android客户端向服务器发送请求的时候,并将参数保存到数据库时遇到了中文乱码的问题: 解决方法: url = "http://xxxx.com/Orders/saveorder.html ...

  6. android客户端向服务器端验证登陆方法的实现2

    一.在上一篇文章中,我只是提到了其中一种方法来实现登陆 大家可以参见: http://www.apkbus.com/android-45004-1-1.html      android获取web服务 ...

  7. android客户端从服务器端获取json数据并解析的实现代码(重要)

    首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的URL中获取数组 * @param urlPath * @return * @throws Exc ...

  8. Android学习笔记--通过wifi向服务器端发送数据

    (转自http://www.cnblogs.com/zhxiang/archive/2011/07/21/2112825.html) 客户端程序: 1 2 3 4 5 6 7 8 9 10 11 12 ...

  9. C语言Socket-单工通信(客户端向服务器发送数据)

    服务端(server) #include <stdio.h> #include <winsock2.h> #pragma comment(lib,"ws2_32.li ...

随机推荐

  1. UVA 11404 五 Palindromic Subsequence

     Palindromic Subsequence Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu ...

  2. c语言中的位移位操作

    先要了解一下C语言里所有的位运算都是指二进制数的位运算.即使输入的是十进制的数,在内存中也是存储为二进制形式. “<<”用法: 格式是:a<<m,a和m必须是整型表达式,要求m ...

  3. Java EE 锚、表格用法

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  4. weblogic解密工具

    import org.bouncycastle.jce.provider.BouncyCastleProvider; import sun.misc.BASE64Decoder; import jav ...

  5. firefox 安装flash插件

    第一步下载并解压flash解压出一个文件:libflashplayer.so 和文件夹usr 第二步查找plugins其他程序或许也有这个文件夹所以先查找firefox在查找mozilla看在哪个文件 ...

  6. poj 3348--Cows(凸包求面积)

    链接:http://poj.org/problem?id=3348 Cows Time Limit: 2000MS   Memory Limit: 65536K Total Submissions:  ...

  7. Ubuntu14.04设置开机root用户登录

    1.sudo vim /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf 2.添加:greeter-show-manual-login=true 3.su ...

  8. Windows Internals学习笔记(一)概念与工具

    参考资料: 1. <Windows Internals> 2. Windows Drive Kit 3. Microsoft Windows SDK 4. WDK下载地址 知识点: 1. ...

  9. Memcached通用类(基于Memcached Client Library)

    分享下自己编写的Memcached通用类.欢迎大家帮忙指点下哈~ 使用的是.NET memcached client library 客户端+Memcached Providers using Sys ...

  10. Hibernate各种主键生成策略与配置详解《转》

    1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...