首页 > 解决方案 > 除了我正在测试的 LG 之外,应用程序不会在其他 android 上发送 http 请求

问题描述

我有一个应用程序,但有青少年在 LG G4 上对其进行测试,我刚开始在其他设备上进行测试,但使用我的三星 s9,我从 API 接收 JSON 数据的 http 请求/POST 无法正常工作,我什至无法登录应用程序

所以我尝试用谷歌搜索答案并在这个网站上查看是否有解决方案,但尝试了很多都没有工作我从 logcat 得到的消息是:

D/NetworkSecurityConfig:未指定网络安全配置,使用平台默认值

I/System.out: (HTTPLog)-静态: isSBSettingEnabled false

试图用谷歌搜索这些消息,但得到的结果与以前相同,我使用 Volley 库发布到服务器

这是我的 LoginActivity.java:

public class LoginActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        final EditText username = findViewById(R.id.username);
        final EditText password = findViewById(R.id.password);
        final Button loginButton = findViewById(R.id.login_button);

        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                final String uName = username.getText().toString();
                final String pWord = password.getText().toString();

                Response.Listener<String> listener = new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {

                        try {

                            Map<String, List<String>> map = new HashMap<>();
                            JSONObject jsonResponse = new JSONObject(response);
                            String success = jsonResponse.getString("sukses");

                            if (success.equals("true")) {

                                JSONObject jsonArray = jsonResponse.getJSONObject(uName);
                                JSONArray regions = jsonArray.names();
                                ArrayList<String> list = new ArrayList<String>();

                                for (int i = 0; i < regions.length(); i++) {

                                    String id = regions.getString(i);
                                    list.add(regions.getString(i).toString());

                                    JSONObject regionArray = jsonArray.getJSONObject(id);
                                    JSONArray fields = regionArray.names();

                                    List<String> fieldName = new ArrayList<>();

                                    for (int d = 0; d < fields.length(); d++) {

                                        String field = fields.getString(d);

                                        fieldName.add(field);

                                    }
                                    map.put(id, fieldName);
                                }

                                Intent farms = new Intent(LoginActivity.this, FarmsActivity.class);
                                farms.putExtra("username", uName);
                                farms.putExtra("password", pWord);
                                farms.putExtra("list", list);
                                farms.putExtra("map", (Serializable) map);
                                startActivity(farms);

                            } else {

                                AlertDialog.Builder invalid = new AlertDialog.Builder(LoginActivity.this);
                                invalid.setTitle("Login Failed");
                                invalid.setMessage("Invalid Login Details")
                                        .setNegativeButton("Retry", null)
                                        .create()
                                        .show();

                            }

                        } catch (JSONException e){

                            e.printStackTrace();

                        }

                    }
                };

                LoginRequest loginRequest = new LoginRequest(uName, pWord, listener);
                loginRequest.setRetryPolicy(new DefaultRetryPolicy(
                        0,
                        DefaultRetryPolicy.DEFAULT_MAX_RETRIES,
                        DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
                RequestQueue queue = Volley.newRequestQueue(LoginActivity.this);
                queue.add(loginRequest);


            }
        });
    }
}

这是登录请求:

public class LoginRequest extends StringRequest{

    private static final String LOGIN_REQUEST_URL = "MY HTML LINK";
    private Map<String, String> params;

    public LoginRequest(String username, String password, Response.Listener<String> listener) {
        super(Request.Method.POST, LOGIN_REQUEST_URL, listener, null);
        params = new HashMap<>();
        params.put("username", username);
        params.put("password", password);
    }

    @Override
    public Map<String, String> getParams(){
        return params;
    }

}

标签: javaandroid

解决方案


推荐阅读