【实战】(三)android模拟qq登录(开源框架get和post)

来源:互联网 发布:在淘宝买ipad可靠吗 编辑:程序博客网 时间:2024/06/14 00:41

       同前两篇差不多,主要区别还是在客户端的程序


       我们在src下面,添加了这样一个包,主要是一个我们从github下载了一个开源框架async_http_client来实现get和post请求。这里给出github的源码下载地址点击打开链接

下载完成之后,解压缩,进到library文件夹下的src/main/java 那一级底下

     

  将这个文件夹copy到项目的src文件夹下即可使用。

  下面给出get方法下的MainActivity.java源码,其余源码同第一篇

  

package com.itheima.login;import org.apache.http.Header;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.text.TextUtils;import android.view.View;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.AsyncHttpResponseHandler;public class MainActivity extends Activity {protected static final int SUCCESS = 0;protected static final int ERROR = 1;private EditText ed_number;private EditText ed_pwd;private TextView tv_status;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ed_number = (EditText) findViewById(R.id.ed_number);ed_pwd = (EditText) findViewById(R.id.ed_pwd);tv_status = (TextView) findViewById(R.id.login_status);}public void login(View v) {// 获得 QQ号码和 密码 , 然后登录final String number = ed_number.getText().toString().trim();final String pwd = ed_pwd.getText().toString().trim();if (TextUtils.isEmpty(number) || TextUtils.isEmpty(pwd)) {Toast.makeText(this, "号码或者密码不能为空", 0).show();return;}String path = "http://192.168.1.100:8080/web_login/login?number="+number+"&pwd="+pwd;AsyncHttpClient client = new AsyncHttpClient();//封装 了 api , 使用到了handler 去 处理了 这些事儿 ...client.get(path, new AsyncHttpResponseHandler() {//请求成功的时候  会被调用的@Overridepublic void onSuccess(int statusCode, Header[] headers,byte[] responseBody) {//System.out.println(new String(responseBody));tv_status.setText(new String(responseBody));}//请求 失败 的时候  会被调用的@Overridepublic void onFailure(int statusCode, Header[] headers,byte[] responseBody, Throwable error) {error.printStackTrace(System.out);Toast.makeText(MainActivity.this, "对不起, 俺错误了...", 0).show();}});}}

下面给出post方法的MainActivity.java代码

package com.itheima.login;import org.apache.http.Header;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.text.TextUtils;import android.view.View;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.loopj.android.http.AsyncHttpClient;import com.loopj.android.http.AsyncHttpResponseHandler;import com.loopj.android.http.RequestParams;public class MainActivity extends Activity {protected static final int SUCCESS = 0;protected static final int ERROR = 1;private EditText ed_number;private EditText ed_pwd;private TextView tv_status;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);ed_number = (EditText) findViewById(R.id.ed_number);ed_pwd = (EditText) findViewById(R.id.ed_pwd);tv_status = (TextView) findViewById(R.id.login_status);}public void login(View v) {// 获得 QQ号码和 密码 , 然后登录final String number = ed_number.getText().toString().trim();final String pwd = ed_pwd.getText().toString().trim();if (TextUtils.isEmpty(number) || TextUtils.isEmpty(pwd)) {Toast.makeText(this, "号码或者密码不能为空", 0).show();return;}String path = "http://192.168.1.100:8080/web_login/login";AsyncHttpClient client = new AsyncHttpClient();//封装 了 api , 使用到了handler 去 处理了 这些事儿 ...RequestParams params = new RequestParams();// number=5201314&pwd=123params.add("number", number);params.add("pwd", pwd);client.post(path, params, new AsyncHttpResponseHandler(){@Overridepublic void onSuccess(int statusCode, Header[] headers,byte[] responseBody) {tv_status.setText(new String(responseBody));}@Overridepublic void onFailure(int statusCode, Header[] headers,byte[] responseBody, Throwable error) {error.printStackTrace(System.out);Toast.makeText(MainActivity.this, "出错误了 ", 0).show();}});}}



阅读全文
0 0
原创粉丝点击