1、 WebServices返回的JSON结果

  1. {
  2. "Code": ,
  3. "Result": [{
  4. "ID": "",
  5. "UserName": "",
  6. "UserPwd": "",
  7. "IsEnable": ""
  8. }]
  9. }

2、访问WEB服务代码

  1. import android.os.Bundle;
  2. import android.os.Message;
  3. import android.util.Log;
  4. import android.widget.Toast;
  5.  
  6. import com.google.gson.Gson;
  7. import com.google.gson.JsonArray;
  8. import com.google.gson.JsonElement;
  9. import com.google.gson.JsonParser;
  10. import com.google.gson.reflect.TypeToken;
  11.  
  12. import org.apache.http.HttpResponse;
  13. import org.apache.http.client.entity.UrlEncodedFormEntity;
  14. import org.apache.http.client.methods.HttpGet;
  15. import org.apache.http.client.methods.HttpPost;
  16. import org.apache.http.impl.client.DefaultHttpClient;
  17. import org.apache.http.message.BasicNameValuePair;
  18. import org.apache.http.protocol.HTTP;
  19. import org.json.JSONArray;
  20. import org.json.JSONException;
  21. import org.json.JSONObject;
  22.  
  23. import java.io.BufferedReader;
  24. import java.io.IOException;
  25. import java.io.InputStream;
  26. import java.io.InputStreamReader;
  27. import java.util.ArrayList;
  28. import java.util.List;
  29.  
  30. import static java.net.Proxy.Type.HTTP;
  31. //判读账号、密码
  32. public static String GetUsers(String code, String pwd) {
  33. String result = "";
  34. InputStreamReader in = null;
  35. try {
  36. final String SERVER_URL = GlobalAppliaction.WebUrl + "LogIn"; // 定义需要获取的内容来源地址
  37. HttpPost request = new HttpPost(SERVER_URL); // 根据内容来源地址创建一个Http请求
  38.  
  39. List params = new ArrayList();
  40. params.add(new BasicNameValuePair("username", code)); // 添加必须的参数
  41. params.add(new BasicNameValuePair("userpwd", pwd)); // 添加必须的参数
  42. request.setEntity(new UrlEncodedFormEntity(params, org.apache.http.protocol.HTTP.UTF_8)); // 设置参数的编码
  43.  
  44. HttpResponse httpResponse = new DefaultHttpClient().execute(request); // 发送请求并获取反馈
  45.  
  46. // 解析返回的内容
  47. if (httpResponse.getStatusLine().getStatusCode() != ) {
  48. InputStream inputStream = httpResponse.getEntity().getContent();
  49. in = new InputStreamReader(inputStream);
  50. BufferedReader bufferedReader = new BufferedReader(in);
  51.  
  52. StringBuffer strBuffer = new StringBuffer();
  53. String line = null;
  54. while ((line = bufferedReader.readLine()) != null) {
  55. strBuffer.append(line);
  56. }
  57. inputStream.close();
  58. bufferedReader.close();
  59. result = strBuffer.toString();
  60. String errCode = "";
  61. String strresult = "";
  62. JSONObject root = new JSONObject(result);
  63. errCode = root.getString("Code");
  64.  
  65. if (errCode.equals("")) {
  66.  
  67. strresult = root.getString("Result");
  68. /*
  69. JSONArray resultArray = new JSONArray(strresult);//解析result
  70. JSONObject resultobj = resultArray.getJSONObject(0);
  71. resultobj.getString("UserName");
  72. resultobj.getString("UserPwd");
  73. */
  74.  
  75. result = strresult;
  76. return result;
  77. } else {
  78. return "-1";
  79. }
  80.  
  81. }
  82.  
  83. } catch (IOException e) {
  84. e.printStackTrace();
  85. Log.d("debug", e.toString());
  86. return "";
  87. } catch (JSONException e) {
  88. e.printStackTrace();
  89. Log.d("debug", e.toString());
  90.  
  91. } finally {
  92.  
  93. if (in != null) {
  94. try {
  95. in.close();
  96. } catch (IOException e) {
  97. e.printStackTrace();
  98. }
  99. }
  100. }
  101. return result;
  102. }

3、读取访问WEB服务结果

  1. try {
  2. //启动后台异步线程进行连接webService操作,并且根据返回结果在主线程中改变UI
  3. GetWebResultTask queryAddressTask = new GetWebResultTask();
  4.  
  5. //启动后台任务
  6. queryAddressTask.execute(etname.getText().toString(), etpwd.getText().toString());
  7.  
  8. } catch (Exception ex) {
  9.  
  10. }
  1. public class GetWebResultTask extends AsyncTask<String, Integer, String> {
  2. @Override
  3. protected String doInBackground(String... params) {
  4. String GetResult = "";
  5. try {
  6.  
  7. GetResult = WebByHttp.GetUsers(params[], params[]);
  8.  
  9. DialogBase.showmessage(LogIn.this, "GetResult:" + GetResult, "doInBackground");
  10. } catch (Exception e) {
  11. e.printStackTrace();
  12.  
  13. }
  14. //将结果返回给onPostExecute方法
  15. return GetResult;
  16.  
  17. }
  18.  
  19. @Override
  20. //此方法可以在主线程改变UI
  21. protected void onPostExecute(String result) {
  22. // 将WebService返回的结果显示在TextView中
  23. tvresult.setText(result);
  24. try {
  25. if (result=="") {
  26. DialogBase.showmessage(LogIn.this, "网络连接有误,请检查网络地址配置信息!", "确定");
  27. return;
  28. }
  29. if (result=="-1") {
  30.  
  31. DialogBase.showmessage(LogIn.this, "账号或密码有误!", "确定");
  32. } else {
  33. Intent itent = new Intent(LogIn.this, MainActivity.class);
  34. startActivity(itent);
  35. }
  36.  
  37. } catch (Exception e) {
  38. e.printStackTrace();
  39.  
  40. }
  41.  
  42. }
  43. }
  1.  
  1.  

Android 登陆功能的实现(访问WebServices 解析返回的JSON结果)的更多相关文章

  1. AJAX html 传输json字符串&&巧妙运用eval()来解析返回的JSON字符串

    1.AJAX html 传输json字符串: js方法如下: function saveRetYwlsh(){ var xmbh = document.getElementById("xmb ...

  2. 【转】Jquery ajax方法解析返回的json数据

    转自http://blog.csdn.net/haiqiao_2010/article/details/12653555 最近在用jQuery的ajax方法传递接收json数据时发现一个问题,那就是返 ...

  3. 使用Python解析豆瓣上Json格式数据

    现在的API接口多为xml或json,json解析更简洁相对xml来说 以豆瓣的API接口为例,解析返回的json数据: https://api.douban.com/v2/book/1220562 ...

  4. Android ListView显示访问WebServices返回的JSON结果

    1.WebServices的返回结果 2.ListView内容布局代码 <?xml version="1.0" encoding="utf-8"?> ...

  5. Android(java)学习笔记258:JNI之hello.c(c代码功能实现)指针语法解析

    1. 接下来我们细讲分析一下前面一讲中,c功能实现的代码: (1)hello.c : #include <jni.h> char* getHello() { //////// return ...

  6. Android图片加载框架最全解析(七),实现带进度的Glide图片加载功能

    我们的Glide系列文章终于要进入收尾篇了.从我开始写这个系列的第一篇文章时,我就知道这会是一个很长的系列,只是没有想到竟然会写这么久. 在前面的六篇文章中,我们对Glide的方方面面都进行了学习,包 ...

  7. Android图片加载框架最全解析(六),探究Glide的自定义模块功能

    不知不觉中,我们的Glide系列教程已经到了第六篇了,距离第一篇Glide的基本用法发布已经过去了半年的时间.在这半年中,我们通过用法讲解和源码分析配合学习的方式,将Glide的方方面面都研究了个遍, ...

  8. Android图片加载框架最全解析(五),Glide强大的图片变换功能

    大家好,又到了学习Glide的时间了.前段时间由于项目开发紧张,再加上后来又生病了,所以停更了一个月,不过现在终于又可以恢复正常更新了.今天是这个系列的第五篇文章,在前面四篇文章的当中,我们已经学习了 ...

  9. Android(java)学习笔记202:JNI之hello.c(c代码功能实现)指针语法解析

    1. 接下来我们细讲分析一下前面一讲中,c功能实现的代码: (1)hello.c : #include <jni.h> char* getHello() { //////// return ...

随机推荐

  1. 企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)

    一.简介 Rancher简介 来源官方:https://www.cnrancher.com/ Rancher是一个开源的企业级容器管理平台.通过Rancher,企业再也不必自己使用一系列的开源软件去从 ...

  2. Chrome 调试 react-native 通过Network面板查看网络请求

    参考 https://github.com/facebook/react-native/issues/934 三楼 真机或模拟器下 Debug JS Remotely, 会打开chrome,地址为ip ...

  3. 抛开贾跃亭!法拉第FF91能成功吗?

    在本届CES 2018上,FF 91又一次刷屏了,而且实实在在地允许试乘了. 抛开贾跃亭的因素不谈,你觉得FF 91能成功吗? 最开始知道法拉第FF91这款电动汽车的名字时,总感觉怪怪的--像是把法拉 ...

  4. Golang: chan定义问题(7)

    通常都是定义读写双向的 chan,定义单向 chan 问题. 专栏的介绍可以参考 <GotchaGolang专栏>,代码可以看<宝库-Gotcha>. 通过 只写 chan 传 ...

  5. Job for network.service failed because the control process exited with error code问题

    Job for network.service failed because the control process exited with error code问题 因为是克隆的,所以需要重新修改静 ...

  6. HDU——算法练习1000 1089-1096

    全篇都是讲数字之间的运算的: 由上自下难度逐渐升级 ,没耐心者建议一拉到底: 1000: Problem Description Calculate A + B.   Input Each line ...

  7. 【系统篇】Archlinux系统安装

    本教程为最新安装Linux的教程,想看更详细可以到我B站主页看视频教程 ArchLinux安装配置手册[系统篇] 本教程参考自 https://wiki.archlinux.org/index.php ...

  8. Spring编译后没有xml配置文件解决方法

    问题描述 在使用Maven来构建Spring项目的时候,使用下面代码来读取Spring配置文件. ClassPathXmlApplicationContext context = new ClassP ...

  9. SpringBoot入门系列(一)如何快速创建SpringBoot项目

    这段时间也没什么事情,所以就重新学习整理了Spring Boot的相关内容.今天开始整理更新Spring Boot学习笔记,感兴趣的朋友可以关注我的博客:https://www.cnblogs.com ...

  10. 记一次crontab执行和日志生成问题

    一.crontab未执行 crontab里面设置定时任务如下: 1 19 * * * /usr/bin/python3 /home/nola/a.py > /home/nola/logs/a_l ...