java - 除了我正在测试的 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;
}
}
解决方案
推荐阅读
- css - 如何使用材料设计使 div 浮动在页面右侧(贴)
- ruby-on-rails - 无法将 Rails 应用程序部署到 Heroku
- java - 从“资源”铸造到收藏
- java - 尝试从独立的 AlertDialog 启动 Activity
- php - 绕过 elseif 语句但在桌面和本地主机上运行良好的移动浏览器
- javascript - 用波斯语(波斯语)在打字时分隔数千
- css - 文本对齐对齐但向右
- javascript - 在 Vue 应用程序中导入脚本后未定义变量
- python - 如何在熊猫数据框中格式化文本
- aframe - 在 Aframe 中访问实时 Vive 控制器位置数据