【问题标题】:Android Volley com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL handshake failedAndroid Volley com.android.volley.NoConnectionError: javax.net.ssl.SSLHandshakeException: javax.net.ssl.SSLProtocolException: SSL 握手失败
【发布时间】:2020-03-01 06:48:12
【问题描述】:

好的,这是我第三次要求相同的程序,我真的很抱歉,因为我不知道如何将 android 应用程序连接到 phpmyadmin。所以,我遇到了这个 SSL 握手失败的问题,我不知道是不是因为它没有经过验证,或者我什至安装了一个。

这是我的安卓代码:

Android Studio MainActvity code
public class MainActivity extends AppCompatActivity {
private EditText UserRegName, UserRegContact, UserRegEmail, UserRegPass;
private Button btUserReg;


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

    UserRegName = findViewById(R.id.UserRegName);
    UserRegContact = findViewById(R.id.UserRegContact);
    UserRegEmail = findViewById(R.id.UserRegEmail);
    UserRegPass = findViewById(R.id.UserRegPass);

    btUserReg = findViewById(R.id.btnUserRegister);
    btUserReg.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view) {
    Regist();
}
});

}
private void Regist(){
    btUserReg.setVisibility(View.VISIBLE);

    final String UserRegName =this.UserRegName.getText().toString().trim();
    final String UserRegContact =this.UserRegContact.getText().toString().trim();
    final String UserRegEmail =this.UserRegEmail.getText().toString().trim();
    final String UserRegPass =this.UserRegPass.getText().toString().trim();



    StringRequest stringRequest = new StringRequest(Request.Method.POST, " http://192.168.254.113/UserRegistration/register.php "  ,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
        try{
            JSONObject jsonObject = new JSONObject(response);
            String success = jsonObject.getString(" success");
            if(success.equals(" 1")){
               Toast.makeText(MainActivity.this, "Register Success!", Toast.LENGTH_SHORT).show();
            }
        } catch (JSONException en) {
            en.printStackTrace();
            Toast.makeText(MainActivity.this, "Register Failed!"+ en.toString(), 
      Toast.LENGTH_SHORT).show();
       btUserReg.setVisibility(View.GONE);
        }
                }
            },
    new Response.ErrorListener(){

        @Override
        public void onErrorResponse(VolleyError error) {
            Toast.makeText(MainActivity.this, "Register Error!"+ error.toString(), Toast.LENGTH_SHORT).show();

        }
    })
    {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String,String> params = new HashMap<>();
            params.put("UserRegName",UserRegName);
            params.put("  UserRegContact ", UserRegContact);
            params.put("UserRegEmail",UserRegEmail);
            params.put("UserRegPass",UserRegPass);
            return params;
        }
    };
    RequestQueue requestQueue = Volley.newRequestQueue(this);
    requestQueue.add(stringRequest);
}
}

另外,这是我的 php 代码,其中包含注册程序

<?php


$con = mysqli_connect("localhost", "root", "", "test");

$Name = $_POST['Name'];
$Email = $_POST['Email'];
$ContactNo = $_POST['ContactNo'];
$Pass = $_POST['Password'];

$Sql_Query = "insert into data (Name,Email,ContactNo,Password) values 
('$Name','$Email','$ContactNo',$Pass)";

if(mysqli_query($con,$Sql_Query)){

echo 'Data Inserted Successfully';

}
else{

echo 'Try Again';

}
mysqli_close($con);
?>

【问题讨论】:

  • 您在manifest 中添加了这一行吗?
  • 我已经把它放在清单文件里了
  • 所以,同样的错误显示?
  • 您是否在服务器上使用自签名证书?
  • 您的代码易受 SQL 注入攻击。您应该使用准备好的语句。

标签: php android ssl


【解决方案1】:

检查是否

  1. 您有正常的互联网
  2. 在清单上添加了 Internet 权限
  3. 如果您的网站没有 https,您必须提供 URL 的非 https 版本(也称为 http)并在清单上启用明文流量

【讨论】:

  • 1 和 2 对于答案来说太模糊了,3 似乎不相关,因为 url 是 http://192.168.254.113
  • 1.我不知道如何对此做出反应 2. 我的清单中已经有
  • @WesleySmith 不,这些并不含糊。这些以前发生在我身上。
  • “正确的互联网”和“互联网许可”确实很模糊。尽管它们可能以某种方式与您以前遇到的问题有关,但所列出的这些要点都对遇到这些问题的人没有帮助。这不会告诉 OP 这些东西是什么意思,如何检查它们,也没有说明如果它们出错了如何修复它们。
  • @WesleySmith 上下文是这里的关键。如果是脸书帖子,那会很模糊。但是OP正在询问与网络相关的问题。因此,适当的互联网意味着,他可以连接到除此之外的其他服务器。而有人在android“清单上的互联网许可”上工作就像晴天的天空一样晴朗
猜你喜欢
  • 1970-01-01
  • 2017-06-21
  • 2017-09-09
  • 2017-09-20
  • 2016-01-05
  • 2018-09-05
  • 2018-07-10
  • 2017-08-16
  • 1970-01-01
相关资源
最近更新 更多