电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

Android開發疫情查詢app(實例代碼)

瀏覽:3日期:2022-09-23 16:46:39

一丶工作原理:

App 通過請求本地tomcat發布的servlet (調用了 HttpURLConnection 方法)獲取MySQL數據庫當中的數據,獲取數據并返回到App 當中,顯示給用戶。(其中傳遞的格式為 json)

使用的工具:Android Studio 開發APP Eclipse 發布Servlet,數據傳遞

二丶運行代碼:

Tomcat 發布的Servlet 類:

package com.Servlet;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import com.Bean.worldbean;import com.Dao.Dao;import com.google.gson.Gson;/** * Servlet implementation class Worldservlet */@WebServlet('/Worldservlet')public class Worldservlet extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public Worldservlet() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub response.setContentType('text/html;charset=UTF-8'); request.setCharacterEncoding('UTF-8'); String s=null; //獲取傳遞過來的參數 String date = request.getParameter('date'); String name =request.getParameter('name'); // Gson 谷歌推出的用于生成和解析JSON 數據格式的工具 使用時需要 導入jar 包 我的是 gson-2.6.2.jar Gson gson=new Gson(); try { worldbean info= Dao.getinfo(date,name); //將數據 轉換為 Json 格式 s=gson.toJson(info); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } //System.out.println(s); //方法作用 只能打印輸出文本格式的(包括html標簽) 不可打印對象 response.getWriter().write(s); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); }}

As 當中的MainActivity:

package com.example.yiqingdemo;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import org.json.JSONObject;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;public class MainActivity extends AppCompatActivity { EditText editTextCountry, editTextDate; TextView textView; Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextCountry = findViewById(R.id.editText4); editTextDate = findViewById(R.id.editText3); textView = findViewById(R.id.textView2); button = findViewById(R.id.button); button.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View v) { //本機tomcat 發布的網站 其實是一個servlet 類 必須先讓本機發布(啟動tomcat 運行) 然后才能訪問改網站 String url = 'http://192.168.0.106:8080/YiQingSearch/Worldservlet?date=' + editTextDate.getText().toString() + '&name=' + editTextCountry.getText().toString(); get(url); } } ); } public void get(final String url) { new Thread(new Runnable() { @Override public void run() { HttpURLConnection connection = null; InputStream is = null; try { //獲取url 對象 URL Url = new URL(url); //獲取httpURlConnection 對象 connection = (HttpURLConnection) Url.openConnection(); //默認為get方法 or post connection.setRequestMethod('GET'); //默認不使用緩存 connection.setUseCaches(false); //設置連接超時時間 單位毫秒 connection.setConnectTimeout(10000); //設置讀取超時時間 connection.setReadTimeout(10000); //設置是否從httpUrlConnection 讀入,默認為true connection.setDoInput(true); //相應的碼數為 200 if (connection.getResponseCode() == HttpURLConnection.HTTP_OK) { //獲取輸入流 is = connection.getInputStream(); //將輸入流內的數據變為Sting類型數據 String info = getStringFromInputStream(is); //轉換為JSON 類型便于讀取 JSONObject jsonObject = new JSONObject(info); textView.setText( '更新時間:' + jsonObject.getString('updatetime') + 'n確診人數:' + jsonObject.getString('confirm') + 'n死亡人數:' + jsonObject.getString('dead') + 'n治愈人數:' + jsonObject.getString('heal') ); /* //獲取url 網頁的源代碼 BufferedReader reader= new BufferedReader(new InputStreamReader(is)); //包裝字節流為字符流 StringBuilder response = new StringBuilder(); String line; while((line = reader.readLine())!=null){ response.append(line); } String s = response.toString(); */ } } catch (Exception e) { e.printStackTrace(); } finally { if (connection != null) { connection.disconnect(); } } } }).start(); } private static String getStringFromInputStream(InputStream is) throws Exception { //定義字節數組緩存區 ByteArrayOutputStream by = new ByteArrayOutputStream(); byte[] buff = new byte[1024]; int len = -1; while ((len = is.read(buff)) != -1) { by.write(buff, 0, len); } is.close(); //將緩沖區的數據轉換為 String 類型 String html = by.toString(); by.close(); return html; }}

除此之外還需要給APP賦予權限 :

As 的 AndroidMainfest 如下:

添加注釋的為自主添加的權限

<?xml version='1.0' encoding='utf-8'?><manifest xmlns:android='http://schemas.android.com/apk/res/android' package='com.example.yiqingdemo'> <uses-permission android:name='android.permission.INTERNET' /> <!--聯網所需要的權限--> <uses-permission android:name='android.permission.ACCESS_WIFI_STATE' /> <!-- 主要用于管理 WIFI 連接的各方面--> <uses-permission android:name='android.permission.ACCESS_NETWORK_STATE' /> <!--主要用于監視一般網路連接 --> <application android:allowBackup='true' android:icon='@mipmap/ic_launcher' android:label='@string/app_name' android:roundIcon='@mipmap/ic_launcher_round' android:supportsRtl='true' android:theme='@style/AppTheme' android:usesCleartextTraffic='true'> <!-- 指示應用程序是否打算使用明文網絡流量 --> <activity android:name='.MainActivity'> <intent-filter> <action android:name='android.intent.action.MAIN' /> <category android:name='android.intent.category.LAUNCHER' /> </intent-filter> </activity> </application></manifest>

三丶 運行結果:

Android開發疫情查詢app(實例代碼)

以上就是Android開發實例(疫情查詢app)的詳細內容,更多關于Android開發APP的資料請關注好吧啦網其它相關文章!

標簽: Android
相關文章:
主站蜘蛛池模板: 水平筛厂家-三轴椭圆水平振动筛-泥沙震动筛设备_山东奥凯诺矿机 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 双工位钻铣攻牙机-转换工作台钻攻中心-钻铣攻牙机一体机-浙江利硕自动化设备有限公司 | 塑胶地板-商用PVC地板-pvc地板革-安耐宝pvc塑胶地板厂家 | 陕西华春网络科技股份有限公司| 微波消解仪器_智能微波消解仪报价_高压微波消解仪厂家_那艾 | 旋转气浴恒温振荡器-往复式水浴恒温振荡器-金怡百科 | 家用净水器代理批发加盟_净水机招商代理_全屋净水器定制品牌_【劳伦斯官网】 | 芜湖厨房设备_芜湖商用厨具_芜湖厨具设备-芜湖鑫环厨具有限公司 控显科技 - 工控一体机、工业显示器、工业平板电脑源头厂家 | 船用泵,船用离心泵,船用喷射泵,泰州隆华船舶设备有限公司 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 贴片电容-贴片电阻-二三极管-国巨|三星|风华贴片电容代理商-深圳伟哲电子 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | SRRC认证|CCC认证|CTA申请_IMEI|MAC地址注册-英利检测 | 培训无忧网-教育培训咨询招生第三方平台 | 数显水浴恒温振荡器-分液漏斗萃取振荡器-常州市凯航仪器有限公司 | 金属抛光机-磁悬浮抛光机-磁力研磨机-磁力清洗机 - 苏州冠古科技 | 拉力机-万能试验机-材料拉伸试验机-电子拉力机-拉力试验机厂家-冲击试验机-苏州皖仪实验仪器有限公司 | PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 京马网,京马建站,网站定制,营销型网站建设,东莞建站,东莞网站建设-首页-京马网 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 北京遮阳网-防尘盖土网-盖土草坪-迷彩网-防尘网生产厂家-京兴科技 | 苏州防水公司_厂房屋面外墙防水_地下室卫生间防水堵漏-苏州伊诺尔防水工程有限公司 | 衡阳耐适防护科技有限公司——威仕盾焊接防护用品官网/焊工手套/焊接防护服/皮革防护手套 | 选矿设备-新型重选设备-金属矿尾矿重选-青州冠诚重工机械有限公司 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 广西正涛环保工程有限公司【官网】 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | atcc网站,sigma试剂价格,肿瘤细胞现货,人结肠癌细胞株购买-南京科佰生物 | 高压绝缘垫-红色配电房绝缘垫-绿色高压绝缘地毯-上海苏海电气 | Pos机办理_个人商户免费POS机申请-拉卡拉办理网 | 许昌奥仕达自动化设备有限公司 | 驾驶式洗地机/扫地机_全自动洗地机_工业洗地机_荣事达工厂官网 | NMRV减速机|铝合金减速机|蜗轮蜗杆减速机|NMRV减速机厂家-东莞市台机减速机有限公司 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 高温链条油|高温润滑脂|轴承润滑脂|机器人保养用油|干膜润滑剂-东莞卓越化学 |