您好我正在尝试为学校项目创建一个Android应用程序,它创建了一个包含在Google工作表中的某些数据的界面。 我在尝试检索其json字符串时遇到问题,并通过缓冲区将其转换为String,问题是执行此操作的标准方法无效。 以下是我用于检索数据的代码,我正在连接的链接以及运行时获取的日志:https://script.googleusercontent.com/macros/echo?user_content_key=YUm908_F4USanZMXYLM5SSNopIaGpE9lsPLN4Gd76Ev-ps1HtglllhSfOon8LijwbaCtE5yErItehXcvQml5MHPUIoB-gnlVOJmA1Yb3SEsKFZqtv3DaNYcMrmhZHmUMWojr9NvTBuBLhyHCd5hHa1ZsYSbt7G4nMhEEDL32U4DxjO7V7yvmJPXJTBuCiTGh3rUPjpYM_V0PJJG7TIaKp6DlhKiyTgeD37GVXNPmWi9BLr90SAXNavw2PD7IFU7Gool08_D5VdRirKpWCIA4qy6ynGhL6kv9iPAz3iOzAmo&lib=MbpKbbfePtAVndrs259dhPT7ROjQYJ8yx:
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;
}
答案 0 :(得分:1)
强烈建议在android上使用现有的库。如果您没有具体的原因来编写自己的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();
}