首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >缓存-控制:无缓存

缓存-控制:无缓存
EN

Stack Overflow用户
提问于 2020-06-04 02:15:20
回答 3查看 120关注 0票数 0

我尝试在android中构建一个应用程序,它可以从带有端口的URL服务器(例如:http://xxx.xxx.xxx.xxx:xxxx)进行json解析。因此,我找到了3种方法,如异步任务、volley和okhttp。但问题是,每次我用这些方法解析它时,总是会发生相同的异常。

java.net.ProtocalException:意外状态行: HTTP/1.1缓存-控制:无缓存

这是我的密码

代码语言:javascript
复制
 class GetJSON extends AsyncTask<Void, Void, String> {

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Please Wait");
            pDialog.setCancelable(false);
            pDialog.show();

            viewId = (TextView) findViewById(R.id.ID) ;
        }

        @Override
        protected String doInBackground(Void... voids) {
            try {
                URL url = new URL(urlWebService);
                HttpURLConnection con = (HttpURLConnection) url.openConnection();
                StringBuilder sb = new StringBuilder();
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(con.getInputStream()));
                String json;

                while ((json = bufferedReader.readLine()) != null) {
                    sb.append(json + "\n");
                }

                JSONObject data = new JSONObject(sb.toString().trim());

                return sb.toString().trim();

            } catch (final Exception e) {
                e.printStackTrace();
                resp = e.getMessage();
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        Toast toast = Toast.makeText(getApplicationContext(), resp, Toast.LENGTH_LONG);
                        toast.setGravity(Gravity.CENTER_VERTICAL, Gravity.CENTER_HORIZONTAL, 0);
                        toast.show();

                    }
                });
            }
            return null;
        }

        @Override
        protected void onPostExecute(String rawData) {
            super.onPostExecute(rawData);
            if (pDialog.isShowing())
                pDialog.dismiss();

            viewId.setText(rawData);
        }


    }

那么,有什么方法来做这个解析吗?或者有什么解决办法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-11-06 01:14:31

很明显,问题不在于我正在使用的代码,而是服务器API的响应。当我点击API时,服务器没有响应,但是现在它运行得非常好!

票数 0
EN

Stack Overflow用户

发布于 2020-06-24 04:09:40

尝试使用postman并使用GET方法。如果它不起作用,您的URL可能有问题。并尝试查看您对URL和android的缓存控制。

票数 1
EN

Stack Overflow用户

发布于 2020-06-04 02:33:58

Android:usesCleartextTraffic=“真”

在你的报表中使用这个

演示:

代码语言:javascript
复制
<application
        android:allowBackup="true"
        android:icon="@drawable/logo"
        android:label="@string/app_name"
        android:roundIcon="@drawable/logo"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        android:usesCleartextTraffic="true"
        tools:ignore="GoogleAppIndexingWarning">
        <activity android:name=".Home.Pages.viewPages.Extra.CancelAlertActivity"></activity>
        <activity android:name=".Home.HomeActivity" />
        <activity android:name=".MapsActivity" />
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62185787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档