Android Веб-сервис (JSON) - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь создать приложение 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();

}
...