안 드 로 이 드 개발 전염병 상황 조회 앱(인 스 턴 스 코드)

일 주 작업 원리:
App 은 로 컬 tomcat 에서 발표 한 servlet(호출HttpURLConnection방법)을 통 해 MySQL 데이터베이스 의 데 이 터 를 가 져 오고 데 이 터 를 가 져 와 App 에 되 돌려 사용자 에 게 표시 합 니 다.(제 이 슨
사용 하 는 도구:Android Studio  앱 개발  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") +
   "
:" + jsonObject.getString("confirm") + "
:" + jsonObject.getString("dead") + "
:" + 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; } }
이외에 도 앱 에 권한 을 부여 해 야 합 니 다.
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>
삼 주 운행 결과:

이상 은 안 드 로 이 드 개발 인 스 턴 스(전염병 상황 조회 app)의 상세 한 내용 입 니 다.안 드 로 이 드 개발 앱 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기