2017-05-27 3 views
0

Hallo Ich versuche, eine Android-Anwendung, für ein Schulprojekt, das eine Schnittstelle zu einigen Daten in einem Google-Blatt enthaltenen erstellt. Ich habe ein Problem beim Versuch, seine JSON-String abrufen und durch einen Puffer in einem String konvertieren, Problem ist die Standardmethode, es funktioniert nicht. Hier ist der Code, den ich die Daten abzurufen, bin mit der Verbindung, auf die ich mich anschließen, und das Log ich, wenn ich es laufen: https://script.googleusercontent.com/macros/echo?user_content_key=YUm908_F4USanZMXYLM5SSNopIaGpE9lsPLN4Gd76Ev-ps1HtglllhSfOon8LijwbaCtE5yErItehXcvQml5MHPUIoB-gnlVOJmA1Yb3SEsKFZqtv3DaNYcMrmhZHmUMWojr9NvTBuBLhyHCd5hHa1ZsYSbt7G4nMhEEDL32U4DxjO7V7yvmJPXJTBuCiTGh3rUPjpYM_V0PJJG7TIaKp6DlhKiyTgeD37GVXNPmWi9BLr90SAXNavw2PD7IFU7Gool08_D5VdRirKpWCIA4qy6ynGhL6kv9iPAz3iOzAmo&lib=MbpKbbfePtAVndrs259dhPT7ROjQYJ8yx:Die JSON von Google Tabellen

public class JSONTask { 
 
    private String txtJson=null; 
 

 
    public String JSONTask(URL url){ 
 
     HttpURLConnection connection= null; 
 
     BufferedReader reader = null; 
 

 
     Log.v("JSONTAKS","READY TO GET JSON"); 
 
     Log.v("JSONTAKS URL",url.toString()); 
 

 
     try{ 
 
      connection=(HttpURLConnection) url.openConnection(); 
 
      connection.connect(); 
 
      Log.v("JSONTask","READY TO BUFFER"); 
 

 
      InputStream stream=connection.getInputStream(); 
 
      reader =new BufferedReader(new InputStreamReader(stream)); 
 

 
      StringBuffer buffer = new StringBuffer(); 
 
      String line=""; 
 
      Log.v("JSONTask",stream.toString()); 
 

 
      while((line = reader.readLine())!=null){ 
 
       buffer.append(line+"\n"); 
 
       Log.v("JSONTASK", buffer.toString()); 
 

 
      } 
 
      Log.v("JSONTASK txt",buffer.toString()); 
 
      txtJson=buffer.toString(); 
 
      Log.v("JSONTASK txt",txtJson); 
 

 
     }catch(Exception e){ 
 
      e.printStackTrace(); 
 
      Log.v("EXCEPTION", "EXCEPTION THROWN"); 
 
     }finally { 
 
      if(connection!=null){ 
 
       connection.disconnect(); 
 
      } 
 
     }try{ 
 
      if(reader!=null){ 
 
       reader.close(); 
 
      } 
 
     }catch (Exception e){ 
 
      e.printStackTrace(); 
 
     } 
 

 

 
     return txtJson; 
 
    }

https://i.stack.imgur.com/p99eR.png

Antwort

1

Es wird dringend empfohlen, auf android vorhandenen Bibliotheken zu verwenden. Wenn es keinen besonderen Grund, warum Sie Ihre eigenen Methoden für REST schreiben, sollten Sie überprüfen http://square.github.io/okhttp/

Der Code, den Sie abrufen müssen, ist auf der Seite:

OkHttpClient client = new OkHttpClient(); 

    String run(String url) throws IOException { 
     Request request = new Request.Builder() 
     .url(url) 
     .build(); 

     Response response = client.newCall(request).execute(); 
     return response.body().string(); 
    } 
+0

wow, danke! Funktioniert wie ein Zauber;) Ich habe versucht, keine Bibliotheken zu verwenden, um etwas Übung mit dem Code zu bekommen, aber du hast mir so viel Zeit mit dieser Bibliothek gespart. –