无法使用asynchTask从服务器获得响应

问题描述 投票:0回答:1

正在尝试创建登录名,并且用户信息位于远程服务器上,但是当我运行应用程序以获取令牌时,我不断收到类型为W / System.err的错误:java.io.FileNotFoundException:[C0 ]“。我已尝试使用邮递员检查API是否正常工作,可能是问题所在。

https://uat.elma.bz/revenueapi/token
java android
1个回答
0
投票

您可以在AndroidManifest.xml中添加此部分(android:usesCleartextTraffic =“ true”)吗?像这样。

private class userlogin extends AsyncTask<String, String, String> {
        @Override
        public void onPreExecute() {
          /*  progressDialog = new ProgressDialog(userLogin.this);
            progressDialog.setMessage("please wait as you get connected to the internet");
            progressDialog.setIndeterminate(true);
            progressDialog.setCancelable(false);
            progressDialog.show();*/
        }

        @Override
        public String doInBackground(String... para) {
            String response = "";

            Map<String, String> params = new LinkedHashMap<>();
            URL url = null;
            try {
                url = new URL(webconfigs.LOGIN_URL);
            } catch (MalformedURLException e) {
                e.printStackTrace();
            }
            ;
            params.put("grant_type", webconfigs.GRANT_TYPE);
            params.put("username", para[0]);
            params.put("Content-Type", webconfigs.CONTENT_TYPE);
            params.put("password", para[1]);
            StringBuilder postData = new StringBuilder();
            for (Map.Entry<String, String> param : params.entrySet()) {
                try {
                    if (postData.length() != 0) postData.append('&');
                    try {
                        postData.append(URLEncoder.encode(param.getKey(), "UTF-8"));
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                    postData.append('=');
                    postData.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));

                } catch (Exception e) {
                }
            }
            try {
                String urlparameters = postData.toString();
                URLConnection conn = url.openConnection();
                conn.setRequestProperty("Method", "POST");
                conn.setDoOutput(true);
                OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream());
                writer.write(urlparameters);
                writer.flush();

                String line = "";
                BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
                //just to show the result
                Log.e("READER", response);
                while (String.valueOf(line = reader.readLine()) != null) {
                    response += line;
                }
                writer.close();
                reader.close();
                return response;

            } catch (Exception e) {
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            Log.e(">>>>LOGINSERVERRESPONSE", ">>>>>" + result);
            //progressDialog.dismiss();
            try {
                JSONObject results = new JSONObject(result);
                String token = results.getString("access_token");
                if (token != null) {
                    String accessToken = results.getString("access_token");
                    String tokenType = results.getString("token_type");
                    String dateIssued = results.getString(".issued");
                    String expiryDate = results.getString(".expires_in");
                    startActivity(new Intent(getApplicationContext(), Homedashboard.class));
                }

            } catch (Exception e) {
            }
        }

    }
© www.soinside.com 2019 - 2024. All rights reserved.