文档章节

android以json实现http登录demo

墨梅
 墨梅
发布于 2014/05/06 18:12
字数 394
阅读 10726
收藏 3
点赞 2
评论 0

直接上代码

LoginActivity.java

 package LoginActivity.activity;
import LoginActivity.bean.StringUtils;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.example.haierloginactivity.R;
public class haierLoginActivity extends Activity {
 private Button btjButton;
 private EditText uname;
 private EditText password;
 private InputMethodManager in;
 
 public void onCreate (Bundle savedInstanceState){
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  
  in = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
  btjButton = (Button)findViewById(R.id.button);
  uname = (EditText)findViewById(R.id.username);
  password = (EditText)findViewById(R.id.password);
  
  btjButton.setOnClickListener(new View.OnClickListener() {
   
   @Override
   public void onClick(View v) {
    // TODO Auto-generated method stub
    in.hideSoftInputFromWindow(v.getWindowToken(), 0);
    
    String name = uname.getText().toString();
    String pwd = password.getText().toString();
    if(StringUtils.isEmpty(name)){
     Toast.makeText(v.getContext(), R.string.login_uname_null, Toast.LENGTH_SHORT);
     return;
    }
    if(StringUtils.isEmpty(pwd)){
     Toast.makeText(v.getContext(), R.string.login_pwd_null, Toast.LENGTH_SHORT);
     return;
    }
    
    login(name, pwd);
   }
  });
 }
 
 private void login(final String name, final String pwd){
  final Handler handler = new Handler() {
   public void handleMessage(Message msg) {
    if(msg.what == 1){
     //提示登陆成功
     Toast.makeText(haierLoginActivity.this, R.string.msg_login_success, Toast.LENGTH_SHORT).show();
     finish();
    }else if(msg.what == 0){
     Log.i(name, msg.toString());
    }else if(msg.what == -1){
     Log.i("==============", msg.toString());
    }
   }
  };
  new Thread(){
   public void run() {
    Message msg =new Message();
    try {
     post po = new post();
     String infoo = po.logina(name, pwd);
     
                 if(infoo != null){
                  msg.what = 1;//成功
                  msg.obj = infoo;
                 }else{
                  msg.what = 0;//失败
                  msg.obj = "2";
                 }
             } catch (Exception e) {
              e.printStackTrace();
        msg.what = -1;
        msg.obj = e;
             }
    handler.sendMessage(msg);
   }
  }.start();
 }
 
}

post.java

 package LoginActivity.activity;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.ParseException;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.client.HttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;
public class post {
 public String logina(String name, String pwd)throws ParseException, IOException, JSONException{
  HttpClient httpClient = new DefaultHttpClient();
  String strurl = "//此处改成自己的url";
  HttpPost request = new HttpPost(strurl);
  request.addHeader("Accept","application/json");
  request.addHeader("Content-Type","application/json");//还可以自定义增加header
  JSONObject param = new JSONObject();//定义json对象
  param.put("sequenceId", "87620056570355357690");
  param.put("accType", "0");
  param.put("loginId", name);
  param.put("password", pwd);
  //param.put("thirdpartyAppId", "");
  //param.put("thirdpartyAccessToken", "");
  param.put("loginType", "1");
  Log.i("===========", param.toString());
  StringEntity se = new StringEntity(param.toString());
  request.setEntity(se);//发送数据
  HttpResponse httpResponse = httpClient.execute(request);//获得相应
  int code = httpResponse.getStatusLine().getStatusCode();
  System.out.print(code);
  String result = EntityUtils.toString(httpResponse.getEntity());
  JSONObject result1 = new JSONObject(result);
  String info = (String) result1.get("retInfo");
  Log.i("=============", info);
  return info;
 }
}

要记得给设备访问网络权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

© 著作权归作者所有

共有 人打赏支持
墨梅
粉丝 15
博文 211
码字总数 43367
作品 0
杭州
后端工程师
Android使用友盟集成QQ、微信、微博等第三方登录

前言 最近项目需要加入第三方分享和登录功能,之前其他项目的第三方分享和登录一直都使用ShareSDK实现的。为了统一使用友盟的全家桶,所以三方分享和登录也就选择了友盟。这里记录一下完整的...

慕前端7069444 ⋅ 05/21 ⋅ 0

ARetrofit组建化最佳路由

Android组件化超级路由,为简单而生。 Github 源码: ARetrofit 原文 demo demo apk 下载 一 介绍 从命名来看,做Android开发的小伙伴们感觉是不是似曾相识…是的,Retrofit,一款优秀的网络框...

CharlesZhu ⋅ 06/05 ⋅ 0

基于JSON RPC的一种Android跨进程调用解决方案了解一下?

基于JSON RPC的一种Android跨进程调用解决方案了解一下? 基于JSON RPC的一种Android跨进程调用解决方案了解一下? 简介 今天上午,看票圈有朋友分享爱奇艺的跨进程通信框架——Andromeda,觉...

流水不腐小夏 ⋅ 05/30 ⋅ 0

Android:手把手教你学会使用Google出品的序列化神器Protocol Buffer

前言 习惯用 数据存储格式的你们,相信大多都没听过 其实 是 出品的一种轻量 & 高效的结构化数据存储格式,性能比 真的强!太!多! 由于 出品,我相信已经具备足够的吸引力 今天,我将详细介...

Carson_Ho ⋅ 04/16 ⋅ 0

Android 音视频开发入门指南(2)

GLSurfaceView是OpenGL中的一个类,也是可以预览Camera的,而且在预览Camera上有其独到之处。独到之处在哪?当使用Surfaceview无能为力、痛不欲生时就只有使用GLSurfaceView了,它能够真正做...

shareus ⋅ 04/23 ⋅ 0

android悬浮窗、收款二维码、相机处理、事件通知库、NFC读取等源码

Android精选源码 一个漂亮而强大的自定义view SeekBar(http://www.apkbus.com/thread-598080-1-1.html) 适用于Android的简单NFC读取源码(http://www.apkbus.com/thread-598082-1-1.html) 安卓......

逆鳞龙 ⋅ 04/24 ⋅ 0

安卓系统下的多线程断点下载实现

最近研究多线程下载,写了个demo,整理下来,也许会对别人有帮助。 多线程下载的话一般开启两到三个线程吧。如果线程太多的话时间会浪费在线程的切换上,倒是浪费了大把的时间。线程多了也不...

rootusers ⋅ 2015/03/17 ⋅ 0

android清理缓存动画、天气APP、购物下单选择器、阅读APP、饿了么demo等源码

Android精选源码 android将文本内容局部变颜色代码(http://www.apkbus.com/thread-597560-1-1.html) Android遮罩对比图效果组件(http://www.apkbus.com/thread-597563-1-1.html) 一个能让你了...

逆鳞龙 ⋅ 04/17 ⋅ 0

React Native 结合ScrollableTab、RefreshControl和FlatList实现新闻分类列表

正好刚开始学RN,熟悉一下控件和基本使用。 涉及的知识点: 1、fetch网络请求,get 拼接参数,解析json。 2、ScrollableTabView、ScrollableTabBar 分类布局。 3、FlatList 数据列表。 4、N...

八怪不姓丑 ⋅ 04/16 ⋅ 0

Android Hybrid开发:这是一份详细 & 全面的WebView学习攻略

前言 现在很多里都内置了Web网页(),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是里一个叫组件实现 今天,我将献上一份全面 & 详细的 攻略,含具体...

Carson_Ho ⋅ 06/19 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

R计算IV

参考文章 #读取文件 rawdata = read.csv("/path/to/csv/file",header=T) colnames(rawdata)[18] <- "y" //重命名因变量y #数据分区 训练集测试集 trainIdx <- sample(nrow(rawdata), round(......

火力全開 ⋅ 7分钟前 ⋅ 0

SQL老司机,在SQL中计算 array & map & json数据

摘要: 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primitive类型的数据。 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primi...

阿里云云栖社区 ⋅ 7分钟前 ⋅ 0

SQL老司机,在SQL中计算 array & map & json数据

摘要: 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primitive类型的数据。 场景 通常,我们处理数据,一列数据类型要么是字符串,要么是数字,这些都是primi...

猫耳m ⋅ 18分钟前 ⋅ 0

关于ireport自定义变量类型为list的时候

自己摸石头过河,我真的应该去趟市中心图书馆,借本真正靠谱的教材 网上的东西,只有0.01%是有用的,还有0.99%是垃圾,剩下的99%是垃圾的复制品。。 哎!~ 问题是这样的,报表带sql,从db中获...

炑炑milina ⋅ 18分钟前 ⋅ 0

Spring mvc ContextLoaderListener 原理解析

对于熟悉Spring MVC功能,首先应从web.xml 开始,在web.xml 文件中我们需要配置一个监听器 ContextLoaderListener,如下。 <!-- 加载spring上下文信息,最主要的功能是解析applicationContex...

轨迹_ ⋅ 19分钟前 ⋅ 0

阿里云发布企业数字化及上云外包平台服务:阿里云众包平台

摘要: 阿里云正式发布旗下众包平台业务(网址:https://zhongbao.aliyun.com/),支持包括:网站定制开发,APP、电商系统等软件开发,商标、商品LOGO、VI、产品包装设计、营销推广、大数据人...

阿里云官方博客 ⋅ 21分钟前 ⋅ 0

Redis安装异常解决办法

官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxvf redis-2.8.17.tar.gz 3. 进入解压缩后的文件夹:c...

slagga ⋅ 25分钟前 ⋅ 0

006. 深入JVM学习—年轻代

1. 年轻代图片 年轻代(Young)属于JVM堆内存空间的一个组成部分 所有使用关键字new新实例化的对象一定会在伊甸园区进行保存,而对于存活区保存的一定是已经在伊甸园区存在一段时间并且经过了...

影狼 ⋅ 26分钟前 ⋅ 0

如何成为一个合格的程序员

偶尔的,我会被人问道:如何成为一名优秀的程序员,更或者,如何成为一名程序员。每次人们问起,我都力图给出不同的答案。因此,我的答案是各种各样的。下面就是我认为的成为一名优秀的程序员...

柳猫 ⋅ 27分钟前 ⋅ 0

cups error_log日志暴增

日志内容 File \"/usr/lib/cups/notifier/dbus\" has insecure permissions 解决(未验证适用范围) sudo service cups stopsudo rm /etc/cups/subscriptions.conf*sudo rm -r /var/cac......

一介码夫_Hum ⋅ 31分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部