안 드 로 이 드 개발 전염병 상황 조회 앱(인 스 턴 스 코드)
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)의 상세 한 내용 입 니 다.안 드 로 이 드 개발 앱 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.