2017-05-27 30 views
0

こんにちは私は、Googleのシートに含まれるいくつかのデータへのインターフェイスを作成する、学校プロジェクトのためのアンドロイドアプリケーションを作ろうとしています。 jsonの文字列を取得しようとしたときにバッファに文字列を変換しようとするときに問題が発生しました。問題は標準的な方法では機能しません。私はそれを実行すると は、ここで私が手に私が接続てるために、私はデータを取得するために使用しているコード、リンク、およびログです:https://script.googleusercontent.com/macros/echo?user_content_key=YUm908_F4USanZMXYLM5SSNopIaGpE9lsPLN4Gd76Ev-ps1HtglllhSfOon8LijwbaCtE5yErItehXcvQml5MHPUIoB-gnlVOJmA1Yb3SEsKFZqtv3DaNYcMrmhZHmUMWojr9NvTBuBLhyHCd5hHa1ZsYSbt7G4nMhEEDL32U4DxjO7V7yvmJPXJTBuCiTGh3rUPjpYM_V0PJJG7TIaKp6DlhKiyTgeD37GVXNPmWi9BLr90SAXNavw2PD7IFU7Gool08_D5VdRirKpWCIA4qy6ynGhL6kv9iPAz3iOzAmo&lib=MbpKbbfePtAVndrs259dhPT7ROjQYJ8yxGoogleスプレッドシートからJSONを取得する

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

答えて

1

既存のライブラリを使用することを強くお勧めします。あなたはRESTのための独自のメソッドを書く理由は何も特別な理由がない場合、あなたはhttp://square.github.io/okhttp/

あなたが取得するために必要なコードをチェックアウトする必要があります敷地内にある:

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

すごい、ありがとうございました!魅力的な作品;)私はコードを使って練習をするためにライブラリを使わないようにしようとしていましたが、このライブラリを使えばずっと時間を節約できました。 –

関連する問題