package com.rocky; import java.io.ByteArrayInputStream; import java.io.DataInputStream; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; 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 android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; /*** * @author huangshuhao * 思路: * 把参数传给一个Uri,当该Uri接受到由post或get方法传过了的 * 参数后,就交由一个Servlet来处理这些参数,类似网页中处理 * 一样,都是提交参数后由Servlet来接受并处理 */ public class LoginActivity extends Activity { private static final int REQUEST_CODE = 2; HttpPost httpRequest=new HttpPost(UriAPI.HTTPCustomer); Button loginButton; Button cancael; @Override public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main2); loginButton=(Button) findViewById(R.id.login); //注册监听器对象 loginButton.setOnClickListener(new OnClickListener(){ CharSequence username=""; CharSequence password=""; public void onClick(View v) { //准备需要提交的数据,从手机界面抓取下来 EditText ev_username =(EditText)findViewById(R.id.username); username=ev_username.getText(); EditText ev_password=(EditText)findViewById(R.id.password); password=ev_password.getText(); if(! username.equals("")&&! password.equals("")){ //创建HttpPost 对象,传入一个Uri HttpPost httpRequest =new HttpPost (UriAPI.HTTPCustomer); //创建参数 List<NameValuePair> params=new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("username", username.toString())); params.add (new BasicNameValuePair("password", password.toString())); params.add(new BasicNameValuePair("flag","0")); try{ //设置编码格式 httpRequest.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8)); //提交HttpPost对象和获取服务器HttpResponse响应数据完成 HttpResponse httpResponse=new DefaultHttpClient().execute(httpRequest); //获取响应服务器的数据 if(httpResponse.getStatusLine().getStatusCode()==200) { //利用字节数组流和包装的绑定技术 byte[] data = new byte[2048]; //先把从服务端来的数据转化成字节数组 data =EntityUtils. toByteArray((HttpEntity)httpResponse.getEntity()); //再创建字节数组输入流对象 ByteArrayInputStream bais = new ByteArrayInputStream(data); //绑定字节流和数据包装流 DataInputStream dis = new DataInputStream(bais); //将字节数组中的数据还原成原来的各种数据类型,代码如下: String user = new String(dis.readUTF()); } }catch(ClientProtocolException e){ e.printStackTrace(); }catch(UnsupportedEncodingException e){ e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } }); } public class UriAPI { /** 定义一个Uri **/ public static final String HTTPCustomer ="http://192.168.157.100:8028/JSHWDemo/servlet/CustomerServlet"; } }
import java.io.DataOutputStream; public class CustomerServlet extends HttpServlet { public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException { String username=request.getParameter("username"); String password=request.getParameter("password"); response.setContentType(CONTENT_TYPE); try{ //做登录判断后返回的结果 customer = cusDao.login(username,password); DataOutputStream output = new DataOutputStream(response.getOutputStream()); if(customer! =null){ //登录成功,向手机写数据 // output.writeUTF(customer.getUsername()); output.writeUTF("服务器端数据:用户名:" + username); output.writeUTF("服务器端数据:密码:" + password); output.writeInt(1); output.close(); } else { //登录失败 output.writeUTF("No"); } }catch(Exception e){ e.printStackTrace(); } } }
http://wenku.baidu.com/view/e99cc78ca0116c175f0e4842.html