Java Socrata URL可以从Chrome上运行,而不是Android应用程序
我试图使用data.LACity.org使用Socrata软件发布的开放数据集 他们有一个JavaAPI,但首先我尝试构建并发送一个URL,如下所示 “阳光”应用程序上的一个变体,一些人在Udacity上学习过 现在我实际上正在构建一个URL,然后将其发送出去,但随后我得到一个FileNotFoundException,如下所示: java.io.FileNotFoundException:?$select=邮政编码、发行日期、地址开始、地址结束、街道名称、街道后缀、工作描述、估价和$where=发行日期>='2015-02-27T00:00:00',邮政编码=90291 麻烦的是:作为最后一次尝试,整个URL是作为一个完整的字符串硬连接的,而不是由片段构建的。如果我将URL插入Chrome,它就可以正常工作,但不能从我的应用程序 但是在我的应用程序中,Sunshine示例应用程序构建的旧URL字符串,从Sunshine run的logcat中插入,用于替换lacity URL上的URL,那么,该调用可以工作,并返回JSON数据 因此,当我从Android应用程序中调用LACity URL获取索克拉塔数据时,我做错了什么。我尝试了https和http,但都失败了。但是,当我从示例应用程序调用weathermap数据时,同样的代码也起作用 以下是两个URL:Java Socrata URL可以从Chrome上运行,而不是Android应用程序,java,android,json,socrata,Java,Android,Json,Socrata,我试图使用data.LACity.org使用Socrata软件发布的开放数据集 他们有一个JavaAPI,但首先我尝试构建并发送一个URL,如下所示 “阳光”应用程序上的一个变体,一些人在Udacity上学习过 现在我实际上正在构建一个URL,然后将其发送出去,但随后我得到一个FileNotFoundException,如下所示: java.io.FileNotFoundException:?$select=邮政编码、发行日期、地址开始、地址结束、街道名称、街道后缀、工作描述、估价和$where
从这个页面在我的问题中突出显示URL的方式可以看出这一点 空间 由于URL字符串中的空格,Android的调用似乎有点咳嗽。 我把它们都关起来了,但是“和”引起了问题。 将其替换为&,现在可以工作了,硬连线。 我将按照预期从输入参数构建它,但我认为这是可以的
正如艾米丽·莱特拉所说 太好了!很高兴你把事情弄明白了。如果您还有任何问题,我们将提供帮助。
final String PERMIT_BASE_URL = "one of the url strings above";
Uri builtUri = Uri.parse(PERMIT_BASE_URL).buildUpon()
.build();
URL url = new URL(builtUri.toString());
Log.v(LOG_TAG, "Build URL: " + url.toString());
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.connect();
InputStream inputStream = urlConnection.getInputStream();
StringBuffer buffer = new StringBuffer();
if (inputStream == null) {
return null;
}
reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
//simplify debugging
buffer.append(line + "\n");
}
if (buffer.length() == 0) {
return null;
}
permitJsonStr = buffer.toString();
Log.v(LOG_TAG, "Permit JSON string: " + permitJsonStr);
} catch (IOException e) {
Log.e(LOG_TAG, "Error on Xoom", e);
// Nothing to parse.
return null;
} finally{
if (urlConnection != null) {
urlConnection.disconnect();
}
if (reader != null) {
try {
reader.close();
} catch (final IOException e) {
Log.e(LOG_TAG, "Error closing stream on Xoom", e);
}
}