Я пытаюсь создать приложение android, которое взаимодействует с моим простым веб-сервисом. Государственное агентство по стандартам на пищевые продукты делает общедоступными результаты проверок гигиены ресторанов (и других предприятий, обслуживающих продукты питания) [1] (см., Например, здесь).
Эти результаты представляют собой одинаковые баллы от одного до пяти, отображаемые на наклейках в дверях заведения и windows. Я собрал все ~ 400 000 рейтингов, доступных для заведений в Англии и Уэльсе, и поместил их в базу данных MySQL.
Я написал веб-сервис на языке сценариев PHP, который будет запрашивать базу данных и результаты обратного осмотра в формате JSON.
Гигиенические показатели заведений вблизи кампуса: http://sandbox.kriswelsh.com/hygieneapi/hygiene.php?op=search_postcode&postcode=M1+7D
Гигиенические показатели заведений вблизи Букингемского дворца: http://sandbox.kriswelsh.com/hygieneapi/hygiene.php?op=search_postcode&postcode=SW1A+1AA
Гигиенические рейтинги заведений в Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogochoch: http://sandbox.kriswelsh.com/hygieneapi/hygiene.php?op=search_postcode&postcode=LL6
package com.example.webservice;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.os.Bundle;
import android.os.StrictMode;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ArrayList<String> listItems = new ArrayList<String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()){
//fetch data
} else{
//display error
}
try{
URL url = new URL("http://www.kriswelsh.com/");
URLConnection connection = url.openConnection();
InputStreamReader ins = new InputStreamReader(connection.getInputStream());
BufferedReader in = new BufferedReader(ins);
String responseBody = "";
String line = "";
while((line = in.readLine()) !=null){
responseBody = responseBody + line;
}
in.close();
}
catch (IOException){
}
ArrayList<String> listItems = new ArrayList<String>();
try{
URL twitter = new URL("http://twitter.com/statuses/public_timeline.json");
HttpURLConnection tc = twitter.openConnection();
InputStreamReader isr = new InputStreamReader(tc.getInputStream());
BufferedReader in = new BufferedReader(isr);
String line;
while ((line = in.readLine()) !=null){
JSONArray ja = new JSONArray(line);
for (int i = 0 ; i < ja.length(): i++){
JSONObject jo = (JSONObject) ja.get(i);
listItems.add(jo.getString("text"));
}
}
}
catch (MalformedURLException e){e.printStackTrace(); }
catch (IOException e) {e.printStackTrace();
}