java - 无法使用 asynchTask 从服务器获取响应

标签 java android

我正在尝试创建登录名,并且用户信息位于远程服务器上,但是当我运行应用程序以获取 token 时,我不断收到类型 W/System.err: java.io.FileNotFoundException 的错误: https://uat.elma.bz/revenueapi/token “.Api 正在通过 Postman 运行,不确定可能是什么问题,请您提出建议。

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) {
            }
        }

    }

最佳答案

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

<manifest ...>


  <application
              ...
              android:usesCleartextTraffic="true">

  </application>

</manifest>

关于java - 无法使用 asynchTask 从服务器获取响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60076141/

相关文章:

java - 无法在 Firebase、Android 上获取值

android - 在 Android 应用程序中使用 Java 反射功能

android - 从 Android App 传递参数到 Facebook App Link

java - AWS EMR - Java 运行时内存不足

java - 将数据输入到输入流中

java - 让Java在循环之间 hibernate ,Linux上命令行指定的 hibernate 时间

android - 在 android 中按下 mapView 之前,我的叠加层不会显示

android - 将最新的 facebook 4.0.1 sdk 导入 eclipse 以作为 facebook 功能登录时出错

java - Spring事务管理器不是线程安全的?

java - 即使在排除单元测试之后,单元测试也会在集成测试阶段执行