Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Socrata URL可以从Chrome上运行,而不是Android应用程序_Java_Android_Json_Socrata - Fatal编程技术网

Java Socrata URL可以从Chrome上运行,而不是Android应用程序

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

我试图使用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:


从这个页面在我的问题中突出显示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);
                }
            }