Android客户端与服务器端交换之客户端

来源:互联网 发布:淘宝打豆豆游戏怎么玩 编辑:程序博客网 时间:2024/05/01 19:44

xml文件就不放出来了,就是一个输入账号,输入密码,再来三个按钮,登录,重置,注册

下面贴出我的java代码部分

LoginToServer

package com.example.loginandregister;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;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.HttpStatus;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;public class LoginToServer {String urlAddress = "";//服务器端地址//以get方式来发送请求public String doGet(String username, String password){String getUrl = urlAddress + "?username=" + username + "&password=" + password;//拼接地址HttpGet httpGet = new HttpGet(getUrl);HttpClient hc = new DefaultHttpClient();try {HttpResponse ht = hc.execute(httpGet); // 给客户端一个响应HttpEntity he = ht.getEntity(); // 内容InputStream is = he.getContent();BufferedReader br = new BufferedReader(new InputStreamReader(is,"GBK"));String response = "";String readLine = null;while ((readLine = br.readLine()) != null) {response = response + readLine;}is.close();return response;} catch (ClientProtocolException e) {e.printStackTrace();return "exception";} catch (IOException e) {e.printStackTrace();return "exception";}}public String doPost(String username, String password){HttpPost httpPost = new HttpPost(urlAddress);List<NameValuePair> params = new ArrayList<NameValuePair>();NameValuePair pair1 = new BasicNameValuePair("username", username);NameValuePair pair2 = new BasicNameValuePair("password", password);params.add(pair1);params.add(pair2);HttpEntity he;try {he = new UrlEncodedFormEntity(params, "gbk");httpPost.setEntity(he);} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}HttpClient hc = new DefaultHttpClient();try {HttpResponse ht = hc.execute(httpPost);if (ht.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {HttpEntity het = ht.getEntity();InputStream is = het.getContent();BufferedReader br = new BufferedReader(new InputStreamReader(is));String response = "";String readLine = null;while ((readLine = br.readLine()) != null) {response = response + readLine;}is.close();return response;} else {return "error";}} catch (ClientProtocolException e) {e.printStackTrace();return "exception";} catch (IOException e) {e.printStackTrace();return "exception";}}}

LoginActivity

package com.example.loginandregister;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class LoginActivity extends Activity {private EditText name,password;private Button login,reset,register;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO 自动生成的方法存根super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);        name = (EditText) findViewById(R.id.name);password = (EditText) findViewById(R.id.psd);login = (Button) findViewById(R.id.login);reset = (Button) findViewById(R.id.reset);register=(Button)findViewById(R.id.register);login.setOnClickListener(new OnClickListener() {public void onClick(View v) {// TODO 自动生成的方法存根final Handler myHandler=new Handler(){public void handleMessage(Message msg) {boolean b=(Boolean)msg.obj;if(b){Intent intent=new Intent(LoginActivity.this,MainActivity.class);Bundle bundle=new Bundle();bundle.putString("name", name.getText().toString());bundle.putString("psd", password.getText().toString());intent.putExtras(bundle);startActivity(intent);finish();Toast.makeText(LoginActivity.this, "登录成功", 1000).show();}else{Toast.makeText(LoginActivity.this, "登录失败", 1000).show();}}};new Thread(){public void run() {boolean b=checkUser(name.getText().toString(),password.getText().toString());Message message=new Message();message.obj=b;myHandler.sendMessage(message);}}.start();}});reset.setOnClickListener(new OnClickListener() {public void onClick(View v) {name.setText("");password.setText("");}});register.setOnClickListener(new OnClickListener() {public void onClick(View v) {Intent intent=new Intent(LoginActivity.this,RegisterActivity.class);startActivity(intent);finish();}});}public boolean checkUser(String name, String psd) {LoginToServer loginToServer = new LoginToServer();String response = loginToServer.doGet(name, psd);if ("true".equals(response)) {return true;} else {return false;}}}

RegisterToServer

package com.example.loginandregister;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;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.HttpStatus;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;public class RegisterToServer {String urlAddress = "";//服务器端地址//以Get方式发送请求public String doGet(String username, String password) {String getUrl = urlAddress + "?username=" + username + "&password=" + password;//拼接地址HttpGet httpGet = new HttpGet(getUrl);HttpClient hc = new DefaultHttpClient();try {HttpResponse ht = hc.execute(httpGet); // 给客户端一个响应System.out.println("ht=" + ht);HttpEntity he = ht.getEntity(); // 内容InputStream is = he.getContent();BufferedReader br = new BufferedReader(new InputStreamReader(is,"GBK"));String response = "";String readLine = null;while ((readLine = br.readLine()) != null) {response = response + readLine;}is.close();return response;} catch (ClientProtocolException e) {e.printStackTrace();return "exception";} catch (IOException e) {e.printStackTrace();return "exception";}}//以post形式发送请求public String doPost(String username, String password) {HttpPost httpPost = new HttpPost(urlAddress);List<NameValuePair> params = new ArrayList<NameValuePair>();NameValuePair pair1 = new BasicNameValuePair("username", username);NameValuePair pair2 = new BasicNameValuePair("password", password);params.add(pair1);params.add(pair2);HttpEntity he;try {he = new UrlEncodedFormEntity(params, "gbk");httpPost.setEntity(he);} catch (UnsupportedEncodingException e1) {e1.printStackTrace();}HttpClient hc = new DefaultHttpClient();try {HttpResponse ht = hc.execute(httpPost);if (ht.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {HttpEntity het = ht.getEntity();InputStream is = het.getContent();BufferedReader br = new BufferedReader(new InputStreamReader(is));String response = "";String readLine = null;while ((readLine = br.readLine()) != null) {response = response + readLine;}is.close();return response;} else {return "error";}} catch (ClientProtocolException e) {e.printStackTrace();return "exception";} catch (IOException e) {e.printStackTrace();return "exception";}}}

RegisterActivity

package com.example.loginandregister;import android.app.Activity;import android.app.AlertDialog;import android.app.AlertDialog.Builder;import android.content.DialogInterface;import android.content.Intent;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class RegisterActivity extends Activity {private EditText name, psd, repsd;private Button reset, register;@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO 自动生成的方法存根super.onCreate(savedInstanceState);setContentView(R.layout.activity_register);name = (EditText) findViewById(R.id.name);psd = (EditText) findViewById(R.id.psd);repsd = (EditText) findViewById(R.id.repsd);reset = (Button) findViewById(R.id.reset);register = (Button) findViewById(R.id.register);reset.setOnClickListener(new OnClickListener() {public void onClick(View v) {name.setText("");psd.setText("");repsd.setText("");}});register.setOnClickListener(new OnClickListener() {public void onClick(View v) {String checkResult = checkInfo();if (checkResult != null) {Builder builder = new AlertDialog.Builder(RegisterActivity.this);builder.setTitle("出错提示");builder.setMessage(checkResult);builder.setPositiveButton("确定",new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialog,int which) {psd.setText("");repsd.setText("");}});builder.create().show();} else {final Handler myHandler = new Handler() {public void handleMessage(Message msg) {boolean b = (Boolean) msg.obj;if (b) {Intent intent = new Intent(RegisterActivity.this,LoginActivity.class);startActivity(intent);Toast.makeText(RegisterActivity.this, "注册成功",1000).show();finish();} else {Toast.makeText(RegisterActivity.this, "注册失败",1000).show();}}};new Thread() {public void run() {boolean b = false;RegisterToServer registerToServer = new RegisterToServer();String response = registerToServer.doGet(name.getText().toString(), psd.getText().toString());if ("true".equals(response)) {b = true;} else {b = false;}Message message = new Message();message.obj = b;myHandler.sendMessage(message);}}.start();}}});}public String checkInfo() {if (name.getText().toString() == null|| name.getText().toString().equals("")) {return "用户名不能为空";}if (psd.getText().toString().trim().length() < 3|| psd.getText().toString().trim().length() > 15) {return "密码位数应该3~15之间";}if (!psd.getText().toString().equals(repsd.getText().toString())) {return "两次输入的密码不一致";}return null;}}

MainActivity

package com.example.loginandregister;import android.app.Activity;import android.os.Bundle;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}}

这只是一个最简单的链接数据库的操作的客户端的写法,其中的一些判断也只是最基本的一些判断!

笔记 2014-03-28


0 0
原创粉丝点击